YES 12.73 H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/FiniteMap.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:



HASKELL
  ↳ LR

mainModule FiniteMap
  ((addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM (\key elt rest ->(key,elt: rest) [] fm

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Lambda Reductions:
The following Lambda expression
\keyeltrest→(key,elt: rest

is transformed to
fmToList0 key elt rest = (key,elt: rest



↳ HASKELL
  ↳ LR
HASKELL
      ↳ CR

mainModule FiniteMap
  ((addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
case fm_R of
  Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr -> 
single_L fm_L fm_R
 | otherwise -> 
double_L fm_L fm_R
 | size_l > sIZE_RATIO * size_r = 
case fm_L of
  Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll -> 
single_R fm_L fm_R
 | otherwise -> 
double_R fm_L fm_R
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok 
case fm_l of
  EmptyFM-> True
  Branch left_key _ _ _ _-> 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok 
case fm_r of
  EmptyFM-> True
  Branch right_key _ _ _ _-> 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Case Reductions:
The following Case expression
case fm_l of
 EmptyFM → True
 Branch left_key _ _ _ _ → 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

is transformed to
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key _ _ _ _) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

The following Case expression
case fm_r of
 EmptyFM → True
 Branch right_key _ _ _ _ → 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

is transformed to
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key _ _ _ _) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

The following Case expression
case fm_R of
 Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 → single_L fm_L fm_R
 | otherwise
 → double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

The following Case expression
case fm_L of
 Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 → single_R fm_L fm_R
 | otherwise
 → double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

The following Case expression
case compare x y of
 EQ → o
 LT → LT
 GT → GT

is transformed to
primCompAux0 o EQ = o
primCompAux0 o LT = LT
primCompAux0 o GT = GT



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
HASKELL
          ↳ IFR

mainModule FiniteMap
  ((addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



If Reductions:
The following If expression
if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero

is transformed to
primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y))
primDivNatS0 x y False = Zero

The following If expression
if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x

is transformed to
primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y)
primModNatS0 x y False = Succ x



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
HASKELL
              ↳ BR

mainModule FiniteMap
  ((addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap a b
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt _ _ EmptyFM(key,elt)
findMax (Branch key elt _ _ fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt _ EmptyFM _) (key,elt)
findMin (Branch key elt _ fm_l _) findMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  c  ->  b  ->  b ->  b  ->  FiniteMap a c  ->  b
foldFM k z EmptyFM z
foldFM k z (Branch key elt _ fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r _ (Branch key_rl elt_rl _ fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l _ fm_ll (Branch key_lr elt_lr _ fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch _ _ _ fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch _ _ _ fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r _ fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l _ fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key _ _ _ _) 
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key _ _ _ _) 
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch _ _ size _ _) size

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Replaced joker patterns by fresh variables and removed binding patterns.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
HASKELL
                  ↳ COR

mainModule FiniteMap
  ((addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  a  ->  b  ->  FiniteMap a b
addToFM_C combiner EmptyFM key elt unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt 
 | new_key < key = 
mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
 | new_key > key = 
mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise = 
Branch new_key (combiner elt new_elt) size fm_l fm_r

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vuv vuw EmptyFM(key,elt)
findMax (Branch key elt vux vuy fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R 
 | size_l + size_r < 2 = 
mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l = 
mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r = 
mkBalBranch1 fm_L fm_R fm_L
 | otherwise = 
mkBranch 2 key elt fm_L fm_R where 
double_L fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr
 | sizeFM fm_rl < 2 * sizeFM fm_rr = 
single_L fm_L fm_R
 | otherwise = 
double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr
 | sizeFM fm_lr < 2 * sizeFM fm_ll = 
single_R fm_L fm_R
 | otherwise = 
double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vuu fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l yv fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vx vy vz wu
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wv ww wx wy
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xx xy size xz yusize

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Cond Reductions:
The following Function with conditions
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R

is transformed to
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)

mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr True = double_R fm_L fm_R

mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr otherwise

mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

The following Function with conditions
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R

is transformed to
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)

mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr True = double_L fm_L fm_R

mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr otherwise

mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

The following Function with conditions
mkBalBranch key elt fm_L fm_R
 | size_l + size_r < 2
 = mkBranch 1 key elt fm_L fm_R
 | size_r > sIZE_RATIO * size_l
 = mkBalBranch0 fm_L fm_R fm_R
 | size_l > sIZE_RATIO * size_r
 = mkBalBranch1 fm_L fm_R fm_L
 | otherwise
 = mkBranch 2 key elt fm_L fm_R
where 
double_L fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)
 | sizeFM fm_rl < 2 * sizeFM fm_rr
 = single_L fm_L fm_R
 | otherwise
 = double_L fm_L fm_R
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)
 | sizeFM fm_lr < 2 * sizeFM fm_ll
 = single_R fm_L fm_R
 | otherwise
 = double_R fm_L fm_R
single_L fm_l (Branch key_r elt_r vuu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yv fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

is transformed to
mkBalBranch key elt fm_L fm_R = mkBalBranch6 key elt fm_L fm_R

mkBalBranch6 key elt fm_L fm_R = 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)
mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yv fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

The following Function with conditions
addToFM_C combiner EmptyFM key elt = unitFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt
 | new_key < key
 = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
 | new_key > key
 = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
 | otherwise
 = Branch new_key (combiner elt new_eltsize fm_l fm_r

is transformed to
addToFM_C combiner EmptyFM key elt = addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt

addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt (addToFM_C combiner fm_l new_key new_eltfm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True = mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False = addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True = Branch new_key (combiner elt new_eltsize fm_l fm_r

addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt = addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

addToFM_C4 combiner EmptyFM key elt = unitFM key elt
addToFM_C4 wuu wuv wuw wux = addToFM_C3 wuu wuv wuw wux

The following Function with conditions
compare x y
 | x == y
 = EQ
 | x <= y
 = LT
 | otherwise
 = GT

is transformed to
compare x y = compare3 x y

compare2 x y True = EQ
compare2 x y False = compare1 x y (x <= y)

compare1 x y True = LT
compare1 x y False = compare0 x y otherwise

compare0 x y True = GT

compare3 x y = compare2 x y (x == y)

The following Function with conditions
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y

gcd'0 x y = gcd' y (x `rem` y)

gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv

gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

The following Function with conditions
gcd 0 0 = error []
gcd x y = 
gcd' (abs x) (abs y)
where 
gcd' x 0 = x
gcd' x y = gcd' y (x `rem` y)

is transformed to
gcd wvy wvz = gcd3 wvy wvz
gcd x y = gcd0 x y

gcd0 x y = 
gcd' (abs x) (abs y)
where 
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv
gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

gcd1 True wvy wvz = error []
gcd1 wwu wwv www = gcd0 wwv www

gcd2 True wvy wvz = gcd1 (wvz == 0) wvy wvz
gcd2 wwx wwy wwz = gcd0 wwy wwz

gcd3 wvy wvz = gcd2 (wvy == 0) wvy wvz
gcd3 wxu wxv = gcd0 wxu wxv

The following Function with conditions
absReal x
 | x >= 0
 = x
 | otherwise
 = `negate` x

is transformed to
absReal x = absReal2 x

absReal0 x True = `negate` x

absReal1 x True = x
absReal1 x False = absReal0 x otherwise

absReal2 x = absReal1 x (x >= 0)

The following Function with conditions
undefined 
 | False
 = undefined

is transformed to
undefined  = undefined1

undefined0 True = undefined

undefined1  = undefined0 False

The following Function with conditions
reduce x y
 | y == 0
 = error []
 | otherwise
 = x `quot` d :% (y `quot` d)
where 
d  = gcd x y

is transformed to
reduce x y = reduce2 x y

reduce2 x y = 
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
HASKELL
                      ↳ LetRed

mainModule FiniteMap
  ((addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b) :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap b a = EmptyFM  | Branch b a Int (FiniteMap b a) (FiniteMap b a


  instance (Eq a, Eq b) => Eq (FiniteMap a b) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b
addListToFM_C combiner fm key_elt_pairs 
foldl add fm key_elt_pairs where 
add fmap (key,eltaddToFM_C combiner fmap key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 wuu wuv wuw wux addToFM_C3 wuu wuv wuw wux

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt vuv vuw EmptyFM(key,elt)
findMax (Branch key elt vux vuy fm_rfindMax fm_r

  findMin :: FiniteMap b a  ->  (b,a)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord b => b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R 
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2) where 
double_L fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)
mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr True double_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr True single_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr False mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr True double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr True single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr False mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuu fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rl) fm_rr
single_R (Branch key_l elt_l yv fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l sizeFM fm_L
size_r sizeFM fm_R

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r 
let 
result Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
 where 
balance_ok True
left_ok left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM True
left_ok0 fm_l key (Branch left_key vx vy vz wu
let 
biggest_left_key fst (findMax fm_l)
in biggest_left_key < key
left_size sizeFM fm_l
right_ok right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM True
right_ok0 fm_r key (Branch right_key wv ww wx wy
let 
smallest_right_key fst (findMin fm_r)
in key < smallest_right_key
right_size sizeFM fm_r
unbox :: Int  ->  Int
unbox x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xx xy size xz yusize

  unitFM :: a  ->  b  ->  FiniteMap a b
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Let/Where Reductions:
The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result
where 
balance_ok  = True
left_ok  = left_ok0 fm_l key fm_l
left_ok0 fm_l key EmptyFM = True
left_ok0 fm_l key (Branch left_key vx vy vz wu) = 
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key
left_size  = sizeFM fm_l
right_ok  = right_ok0 fm_r key fm_r
right_ok0 fm_r key EmptyFM = True
right_ok0 fm_r key (Branch right_key wv ww wx wy) = 
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key
right_size  = sizeFM fm_r
unbox x = x

are unpacked to the following functions on top level
mkBranchLeft_size wxw wxx wxy = sizeFM wxw

mkBranchRight_size wxw wxx wxy = sizeFM wxx

mkBranchLeft_ok wxw wxx wxy = mkBranchLeft_ok0 wxw wxx wxy wxw wxy wxw

mkBranchUnbox wxw wxx wxy x = x

mkBranchRight_ok wxw wxx wxy = mkBranchRight_ok0 wxw wxx wxy wxx wxy wxx

mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM = True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wy) = key < mkBranchRight_ok0Smallest_right_key fm_r

mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM = True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wu) = mkBranchLeft_ok0Biggest_left_key fm_l < key

mkBranchBalance_ok wxw wxx wxy = True

The bindings of the following Let/Where expression
let 
result  = Branch key elt (unbox (1 + left_size + right_size)) fm_l fm_r
in result

are unpacked to the following functions on top level
mkBranchResult wxz wyu wyv wyw = Branch wxz wyu (mkBranchUnbox wyv wyw wxz (1 + mkBranchLeft_size wyv wyw wxz + mkBranchRight_size wyv wyw wxz)) wyv wyw

The bindings of the following Let/Where expression
mkBalBranch5 key elt fm_L fm_R (size_l + size_r < 2)
where 
double_L fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 key elt fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)
double_R (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 key elt fm_lrr fm_r)
mkBalBranch0 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr)
mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr True = double_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr True = single_L fm_L fm_R
mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr False = mkBalBranch00 fm_L fm_R zx zy zz fm_rl fm_rr otherwise
mkBalBranch02 fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch01 fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)
mkBalBranch1 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr)
mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr True = double_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr True = single_R fm_L fm_R
mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr False = mkBalBranch10 fm_L fm_R yy yz zu fm_ll fm_lr otherwise
mkBalBranch12 fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch11 fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)
mkBalBranch2 key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R
mkBalBranch3 key elt fm_L fm_R True = mkBalBranch1 fm_L fm_R fm_L
mkBalBranch3 key elt fm_L fm_R False = mkBalBranch2 key elt fm_L fm_R otherwise
mkBalBranch4 key elt fm_L fm_R True = mkBalBranch0 fm_L fm_R fm_R
mkBalBranch4 key elt fm_L fm_R False = mkBalBranch3 key elt fm_L fm_R (size_l > sIZE_RATIO * size_r)
mkBalBranch5 key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch5 key elt fm_L fm_R False = mkBalBranch4 key elt fm_L fm_R (size_r > sIZE_RATIO * size_l)
single_L fm_l (Branch key_r elt_r vuu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 key elt fm_l fm_rlfm_rr
single_R (Branch key_l elt_l yv fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 key elt fm_lr fm_r)
size_l  = sizeFM fm_L
size_r  = sizeFM fm_R

are unpacked to the following functions on top level
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True = mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lr)

mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True = mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

mkBalBranch6Size_r wyx wyy wyz wzu = sizeFM wyx

mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True = mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr False = mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr otherwise

mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True = mkBranch 2 key elt fm_L fm_R

mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True = mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr False = mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr otherwise

mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rr) = mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rr)

mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lr) = mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True = mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False = mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

mkBalBranch6Size_l wyx wyy wyz wzu = sizeFM wyy

mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlrfm_rr) = mkBranch 5 key_rl elt_rl (mkBranch 6 wyz wzu fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r = mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 wyz wzu fm_lrr fm_r)

mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuu fm_rl fm_rr) = mkBranch 3 key_r elt_r (mkBranch 4 wyz wzu fm_l fm_rlfm_rr

mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yv fm_ll fm_lrfm_r = mkBranch 8 key_l elt_l fm_ll (mkBranch 9 wyz wzu fm_lr fm_r)

mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True = mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True = mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

The bindings of the following Let/Where expression
foldl add fm key_elt_pairs
where 
add fmap (key,elt) = addToFM_C combiner fmap key elt

are unpacked to the following functions on top level
addListToFM_CAdd wzv fmap (key,elt) = addToFM_C wzv fmap key elt

The bindings of the following Let/Where expression
let 
smallest_right_key  = fst (findMin fm_r)
in key < smallest_right_key

are unpacked to the following functions on top level
mkBranchRight_ok0Smallest_right_key wzw = fst (findMin wzw)

The bindings of the following Let/Where expression
let 
biggest_left_key  = fst (findMax fm_l)
in biggest_left_key < key

are unpacked to the following functions on top level
mkBranchLeft_ok0Biggest_left_key wzx = fst (findMax wzx)

The bindings of the following Let/Where expression
reduce1 x y (y == 0)
where 
d  = gcd x y
reduce0 x y True = x `quot` d :% (y `quot` d)
reduce1 x y True = error []
reduce1 x y False = reduce0 x y otherwise

are unpacked to the following functions on top level
reduce2D wzy wzz = gcd wzy wzz

reduce2Reduce0 wzy wzz x y True = x `quot` reduce2D wzy wzz :% (y `quot` reduce2D wzy wzz)

reduce2Reduce1 wzy wzz x y True = error []
reduce2Reduce1 wzy wzz x y False = reduce2Reduce0 wzy wzz x y otherwise

The bindings of the following Let/Where expression
gcd' (abs x) (abs y)
where 
gcd' x wuy = gcd'2 x wuy
gcd' x y = gcd'0 x y
gcd'0 x y = gcd' y (x `rem` y)
gcd'1 True x wuy = x
gcd'1 wuz wvu wvv = gcd'0 wvu wvv
gcd'2 x wuy = gcd'1 (wuy == 0) x wuy
gcd'2 wvw wvx = gcd'0 wvw wvx

are unpacked to the following functions on top level
gcd0Gcd' x wuy = gcd0Gcd'2 x wuy
gcd0Gcd' x y = gcd0Gcd'0 x y

gcd0Gcd'1 True x wuy = x
gcd0Gcd'1 wuz wvu wvv = gcd0Gcd'0 wvu wvv

gcd0Gcd'2 x wuy = gcd0Gcd'1 (wuy == 0) x wuy
gcd0Gcd'2 wvw wvx = gcd0Gcd'0 wvw wvx

gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y)



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
HASKELL
                          ↳ NumRed

mainModule FiniteMap
  ((addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a) :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord a => (b  ->  b  ->  b ->  FiniteMap a b  ->  [(a,b)]  ->  FiniteMap a b
addListToFM_C combiner fm key_elt_pairs foldl (addListToFM_CAdd combiner) fm key_elt_pairs

  
addListToFM_CAdd wzv fmap (key,eltaddToFM_C wzv fmap key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 wuu wuv wuw wux addToFM_C3 wuu wuv wuw wux

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap b a  ->  (b,a)
findMax (Branch key elt vuv vuw EmptyFM(key,elt)
findMax (Branch key elt vux vuy fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap b a  ->  [(b,a)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (a  ->  b  ->  c  ->  c ->  c  ->  FiniteMap a b  ->  c
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 fm_R fm_L key elt key elt fm_L fm_R (mkBalBranch6Size_l fm_R fm_L key elt + mkBalBranch6Size_r fm_R fm_L key elt < 2)

  
mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlr) fm_rrmkBranch 5 key_rl elt_rl (mkBranch 6 wyz wzu fm_l fm_rll) (mkBranch 7 key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r mkBranch 10 key_lr elt_lr (mkBranch 11 key_l elt_l fm_ll fm_lrl) (mkBranch 12 wyz wzu fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr False mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < 2 * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr False mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < 2 * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch 2 key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

  
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch 1 key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

  
mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuu fm_rl fm_rrmkBranch 3 key_r elt_r (mkBranch 4 wyz wzu fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yv fm_ll fm_lrfm_r mkBranch 8 key_l elt_l fm_ll (mkBranch 9 wyz wzu fm_lr fm_r)

  
mkBalBranch6Size_l wyx wyy wyz wzu sizeFM wyy

  
mkBalBranch6Size_r wyx wyy wyz wzu sizeFM wyx

  mkBranch :: Ord a => Int  ->  a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok wxw wxx wxy True

  
mkBranchLeft_ok wxw wxx wxy mkBranchLeft_ok0 wxw wxx wxy wxw wxy wxw

  
mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wumkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key wzx fst (findMax wzx)

  
mkBranchLeft_size wxw wxx wxy sizeFM wxw

  
mkBranchResult wxz wyu wyv wyw Branch wxz wyu (mkBranchUnbox wyv wyw wxz (1 + mkBranchLeft_size wyv wyw wxz + mkBranchRight_size wyv wyw wxz)) wyv wyw

  
mkBranchRight_ok wxw wxx wxy mkBranchRight_ok0 wxw wxx wxy wxx wxy wxx

  
mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wykey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key wzw fst (findMin wzw)

  
mkBranchRight_size wxw wxx wxy sizeFM wxx

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  (FiniteMap a b) ( ->  a (Int  ->  Int)))
mkBranchUnbox wxw wxx wxy x x

  sIZE_RATIO :: Int
sIZE_RATIO 5

  sizeFM :: FiniteMap b a  ->  Int
sizeFM EmptyFM 0
sizeFM (Branch xx xy size xz yusize

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt 1 emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.

↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
HASKELL
                              ↳ Narrow

mainModule FiniteMap
  (addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a)

module FiniteMap where
  import qualified Maybe
import qualified Prelude

  data FiniteMap a b = EmptyFM  | Branch a b Int (FiniteMap a b) (FiniteMap a b


  instance (Eq a, Eq b) => Eq (FiniteMap b a) where 
   
(==) fm_1 fm_2 sizeFM fm_1 == sizeFM fm_2 && fmToList fm_1 == fmToList fm_2

  addListToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  [(b,a)]  ->  FiniteMap b a
addListToFM_C combiner fm key_elt_pairs foldl (addListToFM_CAdd combiner) fm key_elt_pairs

  
addListToFM_CAdd wzv fmap (key,eltaddToFM_C wzv fmap key elt

  addToFM_C :: Ord b => (a  ->  a  ->  a ->  FiniteMap b a  ->  b  ->  a  ->  FiniteMap b a
addToFM_C combiner EmptyFM key elt addToFM_C4 combiner EmptyFM key elt
addToFM_C combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C3 combiner (Branch key elt size fm_l fm_r) new_key new_elt

  
addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt True Branch new_key (combiner elt new_elt) size fm_l fm_r

  
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt fm_l (addToFM_C combiner fm_r new_key new_elt)
addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C0 combiner key elt size fm_l fm_r new_key new_elt otherwise

  
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt True mkBalBranch key elt (addToFM_C combiner fm_l new_key new_elt) fm_r
addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt False addToFM_C1 combiner key elt size fm_l fm_r new_key new_elt (new_key > key)

  
addToFM_C3 combiner (Branch key elt size fm_l fm_rnew_key new_elt addToFM_C2 combiner key elt size fm_l fm_r new_key new_elt (new_key < key)

  
addToFM_C4 combiner EmptyFM key elt unitFM key elt
addToFM_C4 wuu wuv wuw wux addToFM_C3 wuu wuv wuw wux

  emptyFM :: FiniteMap b a
emptyFM EmptyFM

  findMax :: FiniteMap a b  ->  (a,b)
findMax (Branch key elt vuv vuw EmptyFM(key,elt)
findMax (Branch key elt vux vuy fm_rfindMax fm_r

  findMin :: FiniteMap a b  ->  (a,b)
findMin (Branch key elt wz EmptyFM xu(key,elt)
findMin (Branch key elt xv fm_l xwfindMin fm_l

  fmToList :: FiniteMap a b  ->  [(a,b)]
fmToList fm foldFM fmToList0 [] fm

  
fmToList0 key elt rest (key,elt: rest

  foldFM :: (b  ->  c  ->  a  ->  a ->  a  ->  FiniteMap b c  ->  a
foldFM k z EmptyFM z
foldFM k z (Branch key elt vw fm_l fm_rfoldFM k (k key elt (foldFM k z fm_r)) fm_l

  mkBalBranch :: Ord a => a  ->  b  ->  FiniteMap a b  ->  FiniteMap a b  ->  FiniteMap a b
mkBalBranch key elt fm_L fm_R mkBalBranch6 key elt fm_L fm_R

  
mkBalBranch6 key elt fm_L fm_R mkBalBranch6MkBalBranch5 fm_R fm_L key elt key elt fm_L fm_R (mkBalBranch6Size_l fm_R fm_L key elt + mkBalBranch6Size_r fm_R fm_L key elt < Pos (Succ (Succ Zero)))

  
mkBalBranch6Double_L wyx wyy wyz wzu fm_l (Branch key_r elt_r zv (Branch key_rl elt_rl zw fm_rll fm_rlr) fm_rrmkBranch (Pos (Succ (Succ (Succ (Succ (Succ Zero)))))) key_rl elt_rl (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))) wyz wzu fm_l fm_rll) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))) key_r elt_r fm_rlr fm_rr)

  
mkBalBranch6Double_R wyx wyy wyz wzu (Branch key_l elt_l yw fm_ll (Branch key_lr elt_lr yx fm_lrl fm_lrr)) fm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))) key_lr elt_lr (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))))) key_l elt_l fm_ll fm_lrl) (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))))))) wyz wzu fm_lrr fm_r)

  
mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rr)

  
mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True mkBalBranch6Double_L wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr True mkBalBranch6Single_L wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr False mkBalBranch6MkBalBranch00 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr otherwise

  
mkBalBranch6MkBalBranch02 wyx wyy wyz wzu fm_L fm_R (Branch zx zy zz fm_rl fm_rrmkBalBranch6MkBalBranch01 wyx wyy wyz wzu fm_L fm_R zx zy zz fm_rl fm_rr (sizeFM fm_rl < Pos (Succ (Succ Zero)) * sizeFM fm_rr)

  
mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lr)

  
mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True mkBalBranch6Double_R wyx wyy wyz wzu fm_L fm_R

  
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr True mkBalBranch6Single_R wyx wyy wyz wzu fm_L fm_R
mkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr False mkBalBranch6MkBalBranch10 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr otherwise

  
mkBalBranch6MkBalBranch12 wyx wyy wyz wzu fm_L fm_R (Branch yy yz zu fm_ll fm_lrmkBalBranch6MkBalBranch11 wyx wyy wyz wzu fm_L fm_R yy yz zu fm_ll fm_lr (sizeFM fm_lr < Pos (Succ (Succ Zero)) * sizeFM fm_ll)

  
mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch (Pos (Succ (Succ Zero))) key elt fm_L fm_R

  
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch1 wyx wyy wyz wzu fm_L fm_R fm_L
mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch2 wyx wyy wyz wzu key elt fm_L fm_R otherwise

  
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R True mkBalBranch6MkBalBranch0 wyx wyy wyz wzu fm_L fm_R fm_R
mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch3 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_l wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_r wyx wyy wyz wzu)

  
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R True mkBranch (Pos (Succ Zero)) key elt fm_L fm_R
mkBalBranch6MkBalBranch5 wyx wyy wyz wzu key elt fm_L fm_R False mkBalBranch6MkBalBranch4 wyx wyy wyz wzu key elt fm_L fm_R (mkBalBranch6Size_r wyx wyy wyz wzu > sIZE_RATIO * mkBalBranch6Size_l wyx wyy wyz wzu)

  
mkBalBranch6Single_L wyx wyy wyz wzu fm_l (Branch key_r elt_r vuu fm_rl fm_rrmkBranch (Pos (Succ (Succ (Succ Zero)))) key_r elt_r (mkBranch (Pos (Succ (Succ (Succ (Succ Zero))))) wyz wzu fm_l fm_rl) fm_rr

  
mkBalBranch6Single_R wyx wyy wyz wzu (Branch key_l elt_l yv fm_ll fm_lrfm_r mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero))))))))) key_l elt_l fm_ll (mkBranch (Pos (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ (Succ Zero)))))))))) wyz wzu fm_lr fm_r)

  
mkBalBranch6Size_l wyx wyy wyz wzu sizeFM wyy

  
mkBalBranch6Size_r wyx wyy wyz wzu sizeFM wyx

  mkBranch :: Ord b => Int  ->  b  ->  a  ->  FiniteMap b a  ->  FiniteMap b a  ->  FiniteMap b a
mkBranch which key elt fm_l fm_r mkBranchResult key elt fm_l fm_r

  
mkBranchBalance_ok wxw wxx wxy True

  
mkBranchLeft_ok wxw wxx wxy mkBranchLeft_ok0 wxw wxx wxy wxw wxy wxw

  
mkBranchLeft_ok0 wxw wxx wxy fm_l key EmptyFM True
mkBranchLeft_ok0 wxw wxx wxy fm_l key (Branch left_key vx vy vz wumkBranchLeft_ok0Biggest_left_key fm_l < key

  
mkBranchLeft_ok0Biggest_left_key wzx fst (findMax wzx)

  
mkBranchLeft_size wxw wxx wxy sizeFM wxw

  
mkBranchResult wxz wyu wyv wyw Branch wxz wyu (mkBranchUnbox wyv wyw wxz (Pos (Succ Zero+ mkBranchLeft_size wyv wyw wxz + mkBranchRight_size wyv wyw wxz)) wyv wyw

  
mkBranchRight_ok wxw wxx wxy mkBranchRight_ok0 wxw wxx wxy wxx wxy wxx

  
mkBranchRight_ok0 wxw wxx wxy fm_r key EmptyFM True
mkBranchRight_ok0 wxw wxx wxy fm_r key (Branch right_key wv ww wx wykey < mkBranchRight_ok0Smallest_right_key fm_r

  
mkBranchRight_ok0Smallest_right_key wzw fst (findMin wzw)

  
mkBranchRight_size wxw wxx wxy sizeFM wxx

  mkBranchUnbox :: Ord a =>  ->  (FiniteMap a b) ( ->  (FiniteMap a b) ( ->  a (Int  ->  Int)))
mkBranchUnbox wxw wxx wxy x x

  sIZE_RATIO :: Int
sIZE_RATIO Pos (Succ (Succ (Succ (Succ (Succ Zero)))))

  sizeFM :: FiniteMap a b  ->  Int
sizeFM EmptyFM Pos Zero
sizeFM (Branch xx xy size xz yusize

  unitFM :: b  ->  a  ->  FiniteMap b a
unitFM key elt Branch key elt (Pos (Succ Zero)) emptyFM emptyFM


module Maybe where
  import qualified FiniteMap
import qualified Prelude



Haskell To QDPs


↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primEqNat(Succ(xuu500000), Succ(xuu40000)) → new_primEqNat(xuu500000, xuu40000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primCmpNat(Succ(xuu50000), Succ(xuu4000)) → new_primCmpNat(xuu50000, xuu4000)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMinusNat(Succ(xuu44200), Succ(xuu13100)) → new_primMinusNat(xuu44200, xuu13100)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primPlusNat(Succ(xuu44200), Succ(xuu13100)) → new_primPlusNat(xuu44200, xuu13100)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_primMulNat(Succ(xuu500000), Succ(xuu40000)) → new_primMulNat(xuu500000, Succ(xuu40000))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), app(app(ty_@2, cb), cc), cd) → new_esEs(xuu50000, xuu4000, cb, cc)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), app(app(ty_@2, eg), eh)) → new_esEs(xuu50000, xuu4000, eg, eh)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, baf, app(app(ty_@2, bag), bah)) → new_esEs(xuu50002, xuu4002, bag, bah)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), app(app(ty_Either, bdf), bdg), baf, bcb) → new_esEs2(xuu50000, xuu4000, bdf, bdg)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, baf, app(app(app(ty_@3, bbe), bbf), bbg)) → new_esEs3(xuu50002, xuu4002, bbe, bbf, bbg)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, app(app(ty_@2, bbh), bca), bcb) → new_esEs(xuu50001, xuu4001, bbh, bca)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, app(ty_Maybe, bcc), bcb) → new_esEs0(xuu50001, xuu4001, bcc)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), app(ty_[], cf), cd) → new_esEs1(xuu50000, xuu4000, cf)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), app(app(ty_@2, bdb), bdc), baf, bcb) → new_esEs(xuu50000, xuu4000, bdb, bdc)
new_esEs2(Left(xuu50000), Left(xuu4000), app(ty_[], ge), gc) → new_esEs1(xuu50000, xuu4000, ge)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, baf, app(ty_[], bbb)) → new_esEs1(xuu50002, xuu4002, bbb)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), ef) → new_esEs1(xuu50001, xuu4001, ef)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, baf, app(ty_Maybe, bba)) → new_esEs0(xuu50002, xuu4002, bba)
new_esEs0(Just(xuu50000), Just(xuu4000), app(ty_Maybe, dg)) → new_esEs0(xuu50000, xuu4000, dg)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, app(app(ty_Either, bce), bcf), bcb) → new_esEs2(xuu50001, xuu4001, bce, bcf)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), app(ty_[], fb)) → new_esEs1(xuu50000, xuu4000, fb)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, app(ty_[], bcd), bcb) → new_esEs1(xuu50001, xuu4001, bcd)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), h, app(ty_Maybe, bc)) → new_esEs0(xuu50001, xuu4001, bc)
new_esEs2(Left(xuu50000), Left(xuu4000), app(app(ty_Either, gf), gg), gc) → new_esEs2(xuu50000, xuu4000, gf, gg)
new_esEs2(Left(xuu50000), Left(xuu4000), app(app(app(ty_@3, gh), ha), hb), gc) → new_esEs3(xuu50000, xuu4000, gh, ha, hb)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), app(app(ty_Either, fc), fd)) → new_esEs2(xuu50000, xuu4000, fc, fd)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, baf, app(app(ty_Either, bbc), bbd)) → new_esEs2(xuu50002, xuu4002, bbc, bbd)
new_esEs2(Right(xuu50000), Right(xuu4000), hc, app(ty_[], hg)) → new_esEs1(xuu50000, xuu4000, hg)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), bae, app(app(app(ty_@3, bcg), bch), bda), bcb) → new_esEs3(xuu50001, xuu4001, bcg, bch, bda)
new_esEs0(Just(xuu50000), Just(xuu4000), app(app(app(ty_@3, ec), ed), ee)) → new_esEs3(xuu50000, xuu4000, ec, ed, ee)
new_esEs0(Just(xuu50000), Just(xuu4000), app(app(ty_@2, de), df)) → new_esEs(xuu50000, xuu4000, de, df)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), app(ty_Maybe, ce), cd) → new_esEs0(xuu50000, xuu4000, ce)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), h, app(ty_[], bd)) → new_esEs1(xuu50001, xuu4001, bd)
new_esEs0(Just(xuu50000), Just(xuu4000), app(ty_[], dh)) → new_esEs1(xuu50000, xuu4000, dh)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), app(ty_Maybe, fa)) → new_esEs0(xuu50000, xuu4000, fa)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), h, app(app(ty_Either, be), bf)) → new_esEs2(xuu50001, xuu4001, be, bf)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), h, app(app(app(ty_@3, bg), bh), ca)) → new_esEs3(xuu50001, xuu4001, bg, bh, ca)
new_esEs1(:(xuu50000, xuu50001), :(xuu4000, xuu4001), app(app(app(ty_@3, ff), fg), fh)) → new_esEs3(xuu50000, xuu4000, ff, fg, fh)
new_esEs2(Right(xuu50000), Right(xuu4000), hc, app(app(ty_@2, hd), he)) → new_esEs(xuu50000, xuu4000, hd, he)
new_esEs2(Right(xuu50000), Right(xuu4000), hc, app(app(ty_Either, hh), baa)) → new_esEs2(xuu50000, xuu4000, hh, baa)
new_esEs2(Left(xuu50000), Left(xuu4000), app(app(ty_@2, ga), gb), gc) → new_esEs(xuu50000, xuu4000, ga, gb)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), h, app(app(ty_@2, ba), bb)) → new_esEs(xuu50001, xuu4001, ba, bb)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), app(ty_Maybe, bdd), baf, bcb) → new_esEs0(xuu50000, xuu4000, bdd)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), app(app(ty_Either, cg), da), cd) → new_esEs2(xuu50000, xuu4000, cg, da)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), app(ty_[], bde), baf, bcb) → new_esEs1(xuu50000, xuu4000, bde)
new_esEs(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), app(app(app(ty_@3, db), dc), dd), cd) → new_esEs3(xuu50000, xuu4000, db, dc, dd)
new_esEs2(Left(xuu50000), Left(xuu4000), app(ty_Maybe, gd), gc) → new_esEs0(xuu50000, xuu4000, gd)
new_esEs2(Right(xuu50000), Right(xuu4000), hc, app(ty_Maybe, hf)) → new_esEs0(xuu50000, xuu4000, hf)
new_esEs2(Right(xuu50000), Right(xuu4000), hc, app(app(app(ty_@3, bab), bac), bad)) → new_esEs3(xuu50000, xuu4000, bab, bac, bad)
new_esEs0(Just(xuu50000), Just(xuu4000), app(app(ty_Either, ea), eb)) → new_esEs2(xuu50000, xuu4000, ea, eb)
new_esEs3(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), app(app(app(ty_@3, bdh), bea), beb), baf, bcb) → new_esEs3(xuu50000, xuu4000, bdh, bea, beb)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_compare1(Right(xuu5000), Right(xuu400), baf, bag) → new_compare21(xuu5000, xuu400, new_esEs5(xuu5000, xuu400, bag), baf, bag)
new_compare20(Left(xuu550), Left(xuu560), False, app(app(ty_Either, app(ty_[], bf)), bb), bah) → new_ltEs2(xuu550, xuu560, bf)
new_lt2(:(xuu5000, xuu5001), :(xuu400, xuu401), hd) → new_primCompAux(xuu5000, xuu400, new_compare0(xuu5001, xuu401, hd), hd)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, app(app(ty_@2, fb), fc)) → new_ltEs1(xuu551, xuu561, fb, fc)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, app(ty_Maybe, bcg), bcf) → new_lt0(xuu551, xuu561, bcg)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, bhe, app(app(ty_Either, bhf), bhg)) → new_ltEs(xuu112, xuu114, bhf, bhg)
new_ltEs(Right(xuu550), Right(xuu560), cb, app(app(ty_Either, cc), cd)) → new_ltEs(xuu550, xuu560, cc, cd)
new_compare1(Left(xuu5000), Left(xuu400), baf, bag) → new_compare20(xuu5000, xuu400, new_esEs4(xuu5000, xuu400, baf), baf, bag)
new_lt0(Just(xuu5000), Just(xuu400), beg) → new_compare22(xuu5000, xuu400, new_esEs6(xuu5000, xuu400, beg), beg)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, app(ty_[], bec)), bbb), bcf), bah) → new_lt2(xuu550, xuu560, bec)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), bbb), app(ty_Maybe, bbe)), bah) → new_ltEs0(xuu552, xuu562, bbe)
new_ltEs0(Just(xuu550), Just(xuu560), app(ty_Maybe, dg)) → new_ltEs0(xuu550, xuu560, dg)
new_compare3(@2(xuu5000, xuu5001), @2(xuu400, xuu401), bga, bgb) → new_compare23(xuu5000, xuu5001, xuu400, xuu401, new_asAs(new_esEs8(xuu5000, xuu400, bga), new_esEs7(xuu5001, xuu401, bgb)), bga, bgb)
new_primCompAux(xuu5000, xuu400, xuu50, app(ty_[], bab)) → new_compare(xuu5000, xuu400, bab)
new_compare20(Right(xuu550), Right(xuu560), False, app(app(ty_Either, cb), app(app(ty_@2, cf), cg)), bah) → new_ltEs1(xuu550, xuu560, cf, cg)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), bbb), app(app(app(ty_@3, bca), bcb), bcc)), bah) → new_ltEs3(xuu552, xuu562, bca, bcb, bcc)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, app(app(ty_@2, bch), bda), bcf) → new_lt1(xuu551, xuu561, bch, bda)
new_lt1(@2(xuu5000, xuu5001), @2(xuu400, xuu401), bga, bgb) → new_compare23(xuu5000, xuu5001, xuu400, xuu401, new_asAs(new_esEs8(xuu5000, xuu400, bga), new_esEs7(xuu5001, xuu401, bgb)), bga, bgb)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, app(ty_Maybe, cea), cbc, ccg) → new_lt0(xuu96, xuu99, cea)
new_ltEs2(xuu55, xuu56, hc) → new_compare(xuu55, xuu56, hc)
new_lt(Right(xuu5000), Right(xuu400), baf, bag) → new_compare21(xuu5000, xuu400, new_esEs5(xuu5000, xuu400, bag), baf, bag)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, app(app(ty_Either, cce), ccf), ccg) → new_lt(xuu97, xuu100, cce, ccf)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), app(ty_Maybe, bcg)), bcf), bah) → new_lt0(xuu551, xuu561, bcg)
new_compare22(xuu69, xuu70, False, app(app(app(ty_@3, bff), bfg), bfh)) → new_ltEs3(xuu69, xuu70, bff, bfg, bfh)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, app(app(ty_@2, ge), gf)), gc), bah) → new_lt1(xuu550, xuu560, ge, gf)
new_primCompAux(xuu5000, xuu400, xuu50, app(ty_Maybe, hg)) → new_compare2(xuu5000, xuu400, hg)
new_ltEs(Left(xuu550), Left(xuu560), app(app(ty_@2, bd), be), bb) → new_ltEs1(xuu550, xuu560, bd, be)
new_compare20(Right(xuu550), Right(xuu560), False, app(app(ty_Either, cb), app(app(ty_Either, cc), cd)), bah) → new_ltEs(xuu550, xuu560, cc, cd)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, app(app(app(ty_@3, bhb), bhc), bhd), bge) → new_lt3(xuu111, xuu113, bhb, bhc, bhd)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, app(ty_Maybe, bgf), bge) → new_lt0(xuu111, xuu113, bgf)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), app(app(ty_@2, bea), beb), bbb, bcf) → new_lt1(xuu550, xuu560, bea, beb)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), app(ty_[], gg), gc) → new_lt2(xuu550, xuu560, gg)
new_compare20(Just(xuu550), Just(xuu560), False, app(ty_Maybe, app(app(ty_@2, dh), ea)), bah) → new_ltEs1(xuu550, xuu560, dh, ea)
new_compare22(xuu69, xuu70, False, app(app(ty_Either, beh), bfa)) → new_ltEs(xuu69, xuu70, beh, bfa)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), app(ty_Maybe, gd), gc) → new_lt0(xuu550, xuu560, gd)
new_compare21(xuu62, xuu63, False, ceh, app(app(ty_Either, cfa), cfb)) → new_ltEs(xuu62, xuu63, cfa, cfb)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), app(app(app(ty_@3, bdc), bdd), bde)), bcf), bah) → new_lt3(xuu551, xuu561, bdc, bdd, bde)
new_compare21(xuu62, xuu63, False, ceh, app(app(app(ty_@3, cfg), cfh), cga)) → new_ltEs3(xuu62, xuu63, cfg, cfh, cga)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, app(app(ty_@2, bbf), bbg)) → new_ltEs1(xuu552, xuu562, bbf, bbg)
new_lt3(@3(xuu5000, xuu5001, xuu5002), @3(xuu400, xuu401, xuu402), cag, cah, cba) → new_compare24(xuu5000, xuu5001, xuu5002, xuu400, xuu401, xuu402, new_asAs(new_esEs11(xuu5000, xuu400, cag), new_asAs(new_esEs10(xuu5001, xuu401, cah), new_esEs9(xuu5002, xuu402, cba))), cag, cah, cba)
new_ltEs(Left(xuu550), Left(xuu560), app(ty_Maybe, bc), bb) → new_ltEs0(xuu550, xuu560, bc)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, ef), app(app(ty_Either, eg), eh)), bah) → new_ltEs(xuu551, xuu561, eg, eh)
new_ltEs(Left(xuu550), Left(xuu560), app(app(app(ty_@3, bg), bh), ca), bb) → new_ltEs3(xuu550, xuu560, bg, bh, ca)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, app(app(app(ty_@3, bdc), bdd), bde), bcf) → new_lt3(xuu551, xuu561, bdc, bdd, bde)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, app(app(app(ty_@3, bed), bee), bef)), bbb), bcf), bah) → new_lt3(xuu550, xuu560, bed, bee, bef)
new_lt2(:(xuu5000, xuu5001), :(xuu400, xuu401), hd) → new_compare(xuu5001, xuu401, hd)
new_ltEs0(Just(xuu550), Just(xuu560), app(app(ty_@2, dh), ea)) → new_ltEs1(xuu550, xuu560, dh, ea)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, app(app(ty_@2, ceb), cec), cbc, ccg) → new_lt1(xuu96, xuu99, ceb, cec)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, app(app(ty_@2, bgg), bgh), bge) → new_lt1(xuu111, xuu113, bgg, bgh)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, app(ty_Maybe, cch), ccg) → new_lt0(xuu97, xuu100, cch)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, ef), app(ty_[], fd)), bah) → new_ltEs2(xuu551, xuu561, fd)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, bhe, app(app(app(ty_@3, cad), cae), caf)) → new_ltEs3(xuu112, xuu114, cad, cae, caf)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, app(app(app(ty_@3, ff), fg), fh)) → new_ltEs3(xuu551, xuu561, ff, fg, fh)
new_compare22(xuu69, xuu70, False, app(app(ty_@2, bfc), bfd)) → new_ltEs1(xuu69, xuu70, bfc, bfd)
new_ltEs(Left(xuu550), Left(xuu560), app(ty_[], bf), bb) → new_ltEs2(xuu550, xuu560, bf)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), bbb), app(app(ty_Either, bbc), bbd)), bah) → new_ltEs(xuu552, xuu562, bbc, bbd)
new_ltEs(Right(xuu550), Right(xuu560), cb, app(ty_[], da)) → new_ltEs2(xuu550, xuu560, da)
new_ltEs(Right(xuu550), Right(xuu560), cb, app(ty_Maybe, ce)) → new_ltEs0(xuu550, xuu560, ce)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, ef), app(app(app(ty_@3, ff), fg), fh)), bah) → new_ltEs3(xuu551, xuu561, ff, fg, fh)
new_compare20(xuu55, xuu56, False, app(ty_[], hc), bah) → new_compare(xuu55, xuu56, hc)
new_compare4(@3(xuu5000, xuu5001, xuu5002), @3(xuu400, xuu401, xuu402), cag, cah, cba) → new_compare24(xuu5000, xuu5001, xuu5002, xuu400, xuu401, xuu402, new_asAs(new_esEs11(xuu5000, xuu400, cag), new_asAs(new_esEs10(xuu5001, xuu401, cah), new_esEs9(xuu5002, xuu402, cba))), cag, cah, cba)
new_compare20(Just(xuu550), Just(xuu560), False, app(ty_Maybe, app(ty_Maybe, dg)), bah) → new_ltEs0(xuu550, xuu560, dg)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, ef), app(app(ty_@2, fb), fc)), bah) → new_ltEs1(xuu551, xuu561, fb, fc)
new_compare20(Left(xuu550), Left(xuu560), False, app(app(ty_Either, app(app(ty_@2, bd), be)), bb), bah) → new_ltEs1(xuu550, xuu560, bd, be)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, app(app(app(ty_@3, gh), ha), hb)), gc), bah) → new_lt3(xuu550, xuu560, gh, ha, hb)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, app(app(ty_@2, bea), beb)), bbb), bcf), bah) → new_lt1(xuu550, xuu560, bea, beb)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, app(ty_Maybe, cbf)) → new_ltEs0(xuu98, xuu101, cbf)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, app(app(ty_Either, bbc), bbd)) → new_ltEs(xuu552, xuu562, bbc, bbd)
new_ltEs0(Just(xuu550), Just(xuu560), app(app(app(ty_@3, ec), ed), ee)) → new_ltEs3(xuu550, xuu560, ec, ed, ee)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, app(app(app(ty_@3, cee), cef), ceg), cbc, ccg) → new_lt3(xuu96, xuu99, cee, cef, ceg)
new_compare20(Left(xuu550), Left(xuu560), False, app(app(ty_Either, app(app(app(ty_@3, bg), bh), ca)), bb), bah) → new_ltEs3(xuu550, xuu560, bg, bh, ca)
new_ltEs(Left(xuu550), Left(xuu560), app(app(ty_Either, h), ba), bb) → new_ltEs(xuu550, xuu560, h, ba)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, app(app(ty_@2, cbg), cbh)) → new_ltEs1(xuu98, xuu101, cbg, cbh)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, app(ty_Maybe, fa)) → new_ltEs0(xuu551, xuu561, fa)
new_primCompAux(xuu5000, xuu400, xuu50, app(app(ty_@2, hh), baa)) → new_compare3(xuu5000, xuu400, hh, baa)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, app(ty_[], bdb), bcf) → new_lt2(xuu551, xuu561, bdb)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, app(ty_[], bha), bge) → new_lt2(xuu111, xuu113, bha)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), app(ty_[], bec), bbb, bcf) → new_lt2(xuu550, xuu560, bec)
new_ltEs(Right(xuu550), Right(xuu560), cb, app(app(app(ty_@3, db), dc), dd)) → new_ltEs3(xuu550, xuu560, db, dc, dd)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), app(app(app(ty_@3, gh), ha), hb), gc) → new_lt3(xuu550, xuu560, gh, ha, hb)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), app(ty_[], bdb)), bcf), bah) → new_lt2(xuu551, xuu561, bdb)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, app(ty_Maybe, bbe)) → new_ltEs0(xuu552, xuu562, bbe)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, app(ty_[], bbh)) → new_ltEs2(xuu552, xuu562, bbh)
new_compare20(Right(xuu550), Right(xuu560), False, app(app(ty_Either, cb), app(ty_Maybe, ce)), bah) → new_ltEs0(xuu550, xuu560, ce)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), app(app(ty_Either, ga), gb), gc) → new_lt(xuu550, xuu560, ga, gb)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, app(ty_[], cca)) → new_ltEs2(xuu98, xuu101, cca)
new_compare22(xuu69, xuu70, False, app(ty_[], bfe)) → new_ltEs2(xuu69, xuu70, bfe)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, app(ty_[], fd)) → new_ltEs2(xuu551, xuu561, fd)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, app(ty_[], cdc), ccg) → new_lt2(xuu97, xuu100, cdc)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, app(ty_Maybe, bdh)), bbb), bcf), bah) → new_lt0(xuu550, xuu560, bdh)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), app(app(ty_Either, bdf), bdg), bbb, bcf) → new_lt(xuu550, xuu560, bdf, bdg)
new_compare21(xuu62, xuu63, False, ceh, app(app(ty_@2, cfd), cfe)) → new_ltEs1(xuu62, xuu63, cfd, cfe)
new_compare20(Right(xuu550), Right(xuu560), False, app(app(ty_Either, cb), app(ty_[], da)), bah) → new_ltEs2(xuu550, xuu560, da)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, app(app(ty_Either, bcd), bce), bcf) → new_lt(xuu551, xuu561, bcd, bce)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, app(ty_[], gg)), gc), bah) → new_lt2(xuu550, xuu560, gg)
new_compare2(Just(xuu5000), Just(xuu400), beg) → new_compare22(xuu5000, xuu400, new_esEs6(xuu5000, xuu400, beg), beg)
new_primCompAux(xuu5000, xuu400, xuu50, app(app(ty_Either, he), hf)) → new_compare1(xuu5000, xuu400, he, hf)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), app(app(ty_@2, bch), bda)), bcf), bah) → new_lt1(xuu551, xuu561, bch, bda)
new_compare20(Right(xuu550), Right(xuu560), False, app(app(ty_Either, cb), app(app(app(ty_@3, db), dc), dd)), bah) → new_ltEs3(xuu550, xuu560, db, dc, dd)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, app(app(ty_Either, cdg), cdh), cbc, ccg) → new_lt(xuu96, xuu99, cdg, cdh)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), app(app(ty_Either, bcd), bce)), bcf), bah) → new_lt(xuu551, xuu561, bcd, bce)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), bbb), app(app(ty_@2, bbf), bbg)), bah) → new_ltEs1(xuu552, xuu562, bbf, bbg)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, app(app(app(ty_@3, ccb), ccc), ccd)) → new_ltEs3(xuu98, xuu101, ccb, ccc, ccd)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), app(app(ty_@2, ge), gf), gc) → new_lt1(xuu550, xuu560, ge, gf)
new_ltEs1(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, app(app(ty_Either, eg), eh)) → new_ltEs(xuu551, xuu561, eg, eh)
new_compare20(Left(xuu550), Left(xuu560), False, app(app(ty_Either, app(app(ty_Either, h), ba)), bb), bah) → new_ltEs(xuu550, xuu560, h, ba)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, bba), bbb), app(ty_[], bbh)), bah) → new_ltEs2(xuu552, xuu562, bbh)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, app(app(ty_Either, bgc), bgd), bge) → new_lt(xuu111, xuu113, bgc, bgd)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, bhe, app(ty_[], cac)) → new_ltEs2(xuu112, xuu114, cac)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, app(app(app(ty_@3, bca), bcb), bcc)) → new_ltEs3(xuu552, xuu562, bca, bcb, bcc)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, bhe, app(app(ty_@2, caa), cab)) → new_ltEs1(xuu112, xuu114, caa, cab)
new_compare21(xuu62, xuu63, False, ceh, app(ty_Maybe, cfc)) → new_ltEs0(xuu62, xuu63, cfc)
new_compare21(xuu62, xuu63, False, ceh, app(ty_[], cff)) → new_ltEs2(xuu62, xuu63, cff)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), app(app(app(ty_@3, bed), bee), bef), bbb, bcf) → new_lt3(xuu550, xuu560, bed, bee, bef)
new_ltEs0(Just(xuu550), Just(xuu560), app(ty_[], eb)) → new_ltEs2(xuu550, xuu560, eb)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, app(app(ty_@2, cda), cdb), ccg) → new_lt1(xuu97, xuu100, cda, cdb)
new_compare(:(xuu5000, xuu5001), :(xuu400, xuu401), hd) → new_compare(xuu5001, xuu401, hd)
new_ltEs(Right(xuu550), Right(xuu560), cb, app(app(ty_@2, cf), cg)) → new_ltEs1(xuu550, xuu560, cf, cg)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, app(app(ty_Either, cbd), cbe)) → new_ltEs(xuu98, xuu101, cbd, cbe)
new_compare(:(xuu5000, xuu5001), :(xuu400, xuu401), hd) → new_primCompAux(xuu5000, xuu400, new_compare0(xuu5001, xuu401, hd), hd)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, app(app(app(ty_@3, cdd), cde), cdf), ccg) → new_lt3(xuu97, xuu100, cdd, cde, cdf)
new_compare23(xuu111, xuu112, xuu113, xuu114, False, bhe, app(ty_Maybe, bhh)) → new_ltEs0(xuu112, xuu114, bhh)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, ef), app(ty_Maybe, fa)), bah) → new_ltEs0(xuu551, xuu561, fa)
new_compare22(xuu69, xuu70, False, app(ty_Maybe, bfb)) → new_ltEs0(xuu69, xuu70, bfb)
new_compare20(Just(xuu550), Just(xuu560), False, app(ty_Maybe, app(app(ty_Either, de), df)), bah) → new_ltEs(xuu550, xuu560, de, df)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, app(ty_Maybe, gd)), gc), bah) → new_lt0(xuu550, xuu560, gd)
new_lt(Left(xuu5000), Left(xuu400), baf, bag) → new_compare20(xuu5000, xuu400, new_esEs4(xuu5000, xuu400, baf), baf, bag)
new_compare20(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), False, app(app(app(ty_@3, app(app(ty_Either, bdf), bdg)), bbb), bcf), bah) → new_lt(xuu550, xuu560, bdf, bdg)
new_compare20(@2(xuu550, xuu551), @2(xuu560, xuu561), False, app(app(ty_@2, app(app(ty_Either, ga), gb)), gc), bah) → new_lt(xuu550, xuu560, ga, gb)
new_compare20(Just(xuu550), Just(xuu560), False, app(ty_Maybe, app(ty_[], eb)), bah) → new_ltEs2(xuu550, xuu560, eb)
new_primCompAux(xuu5000, xuu400, xuu50, app(app(app(ty_@3, bac), bad), bae)) → new_compare4(xuu5000, xuu400, bac, bad, bae)
new_compare20(Left(xuu550), Left(xuu560), False, app(app(ty_Either, app(ty_Maybe, bc)), bb), bah) → new_ltEs0(xuu550, xuu560, bc)
new_compare24(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, app(ty_[], ced), cbc, ccg) → new_lt2(xuu96, xuu99, ced)
new_ltEs0(Just(xuu550), Just(xuu560), app(app(ty_Either, de), df)) → new_ltEs(xuu550, xuu560, de, df)
new_ltEs3(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), app(ty_Maybe, bdh), bbb, bcf) → new_lt0(xuu550, xuu560, bdh)
new_compare20(Just(xuu550), Just(xuu560), False, app(ty_Maybe, app(app(app(ty_@3, ec), ed), ee)), bah) → new_ltEs3(xuu550, xuu560, ec, ed, ee)

The TRS R consists of the following rules:

new_esEs8(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs10(xuu5001, xuu401, ty_Integer) → new_esEs12(xuu5001, xuu401)
new_esEs6(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_compare13(EQ, EQ) → EQ
new_ltEs10(xuu55, xuu56) → new_fsEs(new_compare12(xuu55, xuu56))
new_esEs26(xuu97, xuu100, ty_@0) → new_esEs15(xuu97, xuu100)
new_esEs32(xuu111, xuu113, ty_Char) → new_esEs16(xuu111, xuu113)
new_lt21(xuu111, xuu113, ty_Bool) → new_lt9(xuu111, xuu113)
new_compare113(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, False, xuu190, dhb, dhc, dhd) → new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, xuu190, dhb, dhc, dhd)
new_ltEs22(xuu552, xuu562, app(app(ty_@2, bbf), bbg)) → new_ltEs12(xuu552, xuu562, bbf, bbg)
new_esEs20(True, True) → True
new_esEs5(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_lt21(xuu111, xuu113, app(ty_Maybe, bgf)) → new_lt8(xuu111, xuu113, bgf)
new_esEs31(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_ltEs11(LT, GT) → True
new_esEs37(xuu50000, xuu4000, app(app(app(ty_@3, faa), fab), fac)) → new_esEs25(xuu50000, xuu4000, faa, fab, fac)
new_esEs40(xuu50000, xuu4000, app(ty_[], fge)) → new_esEs22(xuu50000, xuu4000, fge)
new_esEs8(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs8(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_ltEs19(xuu98, xuu101, app(ty_Ratio, dbg)) → new_ltEs16(xuu98, xuu101, dbg)
new_compare13(GT, LT) → GT
new_ltEs4(Just(xuu550), Just(xuu560), ty_Double) → new_ltEs9(xuu550, xuu560)
new_esEs5(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_lt20(xuu550, xuu560, ty_Int) → new_lt10(xuu550, xuu560)
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(app(ty_@3, fbg), fbh), fca), chg) → new_esEs25(xuu50000, xuu4000, fbg, fbh, fca)
new_compare110(xuu141, xuu142, True, cge, cgf) → LT
new_lt22(xuu551, xuu561, ty_Int) → new_lt10(xuu551, xuu561)
new_esEs27(xuu96, xuu99, app(ty_Ratio, dca)) → new_esEs18(xuu96, xuu99, dca)
new_ltEs18(xuu62, xuu63, app(ty_Maybe, cfc)) → new_ltEs4(xuu62, xuu63, cfc)
new_esEs11(xuu5000, xuu400, app(ty_Maybe, dce)) → new_esEs21(xuu5000, xuu400, dce)
new_lt4(xuu97, xuu100, ty_Char) → new_lt7(xuu97, xuu100)
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Int) → new_ltEs8(xuu550, xuu560)
new_ltEs19(xuu98, xuu101, ty_Integer) → new_ltEs15(xuu98, xuu101)
new_esEs11(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs11(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_ltEs23(xuu69, xuu70, app(app(app(ty_@3, bff), bfg), bfh)) → new_ltEs17(xuu69, xuu70, bff, bfg, bfh)
new_compare8(Nothing, Just(xuu400), beg) → LT
new_compare5(xuu5000, xuu400, app(app(ty_Either, he), hf)) → new_compare6(xuu5000, xuu400, he, hf)
new_esEs10(xuu5001, xuu401, ty_Float) → new_esEs23(xuu5001, xuu401)
new_esEs29(xuu550, xuu560, app(ty_[], gg)) → new_esEs22(xuu550, xuu560, gg)
new_primMulNat0(Zero, Zero) → Zero
new_compare19(xuu168, xuu169, xuu170, xuu171, False, cgc, cgd) → GT
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Bool, chg) → new_esEs20(xuu50000, xuu4000)
new_compare9(True, False) → GT
new_esEs4(xuu5000, xuu400, app(ty_Ratio, chc)) → new_esEs18(xuu5000, xuu400, chc)
new_ltEs18(xuu62, xuu63, ty_Int) → new_ltEs8(xuu62, xuu63)
new_esEs32(xuu111, xuu113, ty_@0) → new_esEs15(xuu111, xuu113)
new_esEs26(xuu97, xuu100, app(ty_[], cdc)) → new_esEs22(xuu97, xuu100, cdc)
new_esEs7(xuu5001, xuu401, ty_Int) → new_esEs17(xuu5001, xuu401)
new_esEs4(xuu5000, xuu400, app(ty_Maybe, chd)) → new_esEs21(xuu5000, xuu400, chd)
new_ltEs19(xuu98, xuu101, ty_Double) → new_ltEs9(xuu98, xuu101)
new_esEs4(xuu5000, xuu400, app(ty_[], che)) → new_esEs22(xuu5000, xuu400, che)
new_ltEs21(xuu112, xuu114, app(app(app(ty_@3, cad), cae), caf)) → new_ltEs17(xuu112, xuu114, cad, cae, caf)
new_esEs35(xuu551, xuu561, app(app(ty_Either, bcd), bce)) → new_esEs24(xuu551, xuu561, bcd, bce)
new_ltEs15(xuu55, xuu56) → new_fsEs(new_compare16(xuu55, xuu56))
new_esEs9(xuu5002, xuu402, ty_@0) → new_esEs15(xuu5002, xuu402)
new_lt4(xuu97, xuu100, ty_Float) → new_lt12(xuu97, xuu100)
new_esEs40(xuu50000, xuu4000, app(app(ty_@2, fga), fgb)) → new_esEs14(xuu50000, xuu4000, fga, fgb)
new_esEs32(xuu111, xuu113, app(app(ty_@2, bgg), bgh)) → new_esEs14(xuu111, xuu113, bgg, bgh)
new_esEs27(xuu96, xuu99, ty_Bool) → new_esEs20(xuu96, xuu99)
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Float) → new_ltEs10(xuu550, xuu560)
new_esEs14(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), cha, chb) → new_asAs(new_esEs31(xuu50000, xuu4000, cha), new_esEs30(xuu50001, xuu4001, chb))
new_esEs29(xuu550, xuu560, app(ty_Maybe, gd)) → new_esEs21(xuu550, xuu560, gd)
new_esEs27(xuu96, xuu99, ty_Integer) → new_esEs12(xuu96, xuu99)
new_esEs6(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs13(EQ, EQ) → True
new_ltEs7(True, True) → True
new_esEs6(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Double) → new_esEs19(xuu50000, xuu4000)
new_lt5(xuu96, xuu99, ty_Ordering) → new_lt13(xuu96, xuu99)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Char) → new_esEs16(xuu50000, xuu4000)
new_compare5(xuu5000, xuu400, ty_Bool) → new_compare9(xuu5000, xuu400)
new_lt21(xuu111, xuu113, app(ty_[], bha)) → new_lt16(xuu111, xuu113, bha)
new_esEs38(xuu50002, xuu4002, app(ty_[], fea)) → new_esEs22(xuu50002, xuu4002, fea)
new_ltEs21(xuu112, xuu114, ty_Float) → new_ltEs10(xuu112, xuu114)
new_ltEs22(xuu552, xuu562, app(ty_Maybe, bbe)) → new_ltEs4(xuu552, xuu562, bbe)
new_ltEs19(xuu98, xuu101, ty_@0) → new_ltEs13(xuu98, xuu101)
new_lt14(xuu500, xuu40, bga, bgb) → new_esEs28(new_compare14(xuu500, xuu40, bga, bgb))
new_lt5(xuu96, xuu99, ty_Integer) → new_lt17(xuu96, xuu99)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(ty_Maybe, fce)) → new_esEs21(xuu50000, xuu4000, fce)
new_compare5(xuu5000, xuu400, app(ty_Maybe, hg)) → new_compare8(xuu5000, xuu400, hg)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Double, chg) → new_esEs19(xuu50000, xuu4000)
new_ltEs20(xuu551, xuu561, app(app(ty_@2, fb), fc)) → new_ltEs12(xuu551, xuu561, fb, fc)
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_[], bf), bb) → new_ltEs14(xuu550, xuu560, bf)
new_ltEs5(Left(xuu550), Right(xuu560), cb, bb) → True
new_compare0(:(xuu5000, xuu5001), :(xuu400, xuu401), hd) → new_primCompAux0(xuu5000, xuu400, new_compare0(xuu5001, xuu401, hd), hd)
new_esEs31(xuu50000, xuu4000, app(ty_Maybe, edh)) → new_esEs21(xuu50000, xuu4000, edh)
new_esEs7(xuu5001, xuu401, app(ty_[], efh)) → new_esEs22(xuu5001, xuu401, efh)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_Ratio, eba)) → new_esEs18(xuu50000, xuu4000, eba)
new_ltEs24(xuu55, xuu56, app(app(ty_@2, ef), gc)) → new_ltEs12(xuu55, xuu56, ef, gc)
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(app(ty_Either, cc), cd)) → new_ltEs5(xuu550, xuu560, cc, cd)
new_lt20(xuu550, xuu560, ty_Float) → new_lt12(xuu550, xuu560)
new_esEs5(xuu5000, xuu400, app(app(ty_Either, dah), dba)) → new_esEs24(xuu5000, xuu400, dah, dba)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_esEs27(xuu96, xuu99, app(ty_[], ced)) → new_esEs22(xuu96, xuu99, ced)
new_ltEs24(xuu55, xuu56, ty_Double) → new_ltEs9(xuu55, xuu56)
new_esEs12(Integer(xuu50000), Integer(xuu4000)) → new_primEqInt(xuu50000, xuu4000)
new_esEs26(xuu97, xuu100, app(ty_Maybe, cch)) → new_esEs21(xuu97, xuu100, cch)
new_esEs35(xuu551, xuu561, ty_Float) → new_esEs23(xuu551, xuu561)
new_esEs37(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_ltEs19(xuu98, xuu101, app(ty_Maybe, cbf)) → new_ltEs4(xuu98, xuu101, cbf)
new_ltEs20(xuu551, xuu561, ty_Double) → new_ltEs9(xuu551, xuu561)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Float, bb) → new_ltEs10(xuu550, xuu560)
new_lt7(xuu500, xuu40) → new_esEs28(new_compare7(xuu500, xuu40))
new_lt21(xuu111, xuu113, ty_Char) → new_lt7(xuu111, xuu113)
new_lt23(xuu550, xuu560, ty_Bool) → new_lt9(xuu550, xuu560)
new_ltEs23(xuu69, xuu70, ty_Ordering) → new_ltEs11(xuu69, xuu70)
new_ltEs21(xuu112, xuu114, app(app(ty_@2, caa), cab)) → new_ltEs12(xuu112, xuu114, caa, cab)
new_esEs10(xuu5001, xuu401, ty_Bool) → new_esEs20(xuu5001, xuu401)
new_ltEs19(xuu98, xuu101, ty_Char) → new_ltEs6(xuu98, xuu101)
new_ltEs5(Right(xuu550), Left(xuu560), cb, bb) → False
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_esEs7(xuu5001, xuu401, ty_Float) → new_esEs23(xuu5001, xuu401)
new_compare6(Left(xuu5000), Right(xuu400), baf, bag) → LT
new_lt23(xuu550, xuu560, app(app(app(ty_@3, bed), bee), bef)) → new_lt19(xuu550, xuu560, bed, bee, bef)
new_lt18(xuu500, xuu40, fdd) → new_esEs28(new_compare17(xuu500, xuu40, fdd))
new_ltEs7(True, False) → False
new_pePe(False, xuu201) → xuu201
new_esEs33(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_esEs13(LT, EQ) → False
new_esEs13(EQ, LT) → False
new_lt23(xuu550, xuu560, app(app(ty_Either, bdf), bdg)) → new_lt6(xuu550, xuu560, bdf, bdg)
new_esEs39(xuu50001, xuu4001, ty_@0) → new_esEs15(xuu50001, xuu4001)
new_esEs8(xuu5000, xuu400, app(ty_[], dfb)) → new_esEs22(xuu5000, xuu400, dfb)
new_esEs39(xuu50001, xuu4001, app(ty_Maybe, ffb)) → new_esEs21(xuu50001, xuu4001, ffb)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Float) → new_ltEs10(xuu550, xuu560)
new_esEs32(xuu111, xuu113, ty_Float) → new_esEs23(xuu111, xuu113)
new_esEs36(xuu550, xuu560, ty_Integer) → new_esEs12(xuu550, xuu560)
new_esEs9(xuu5002, xuu402, app(app(ty_@2, ddd), dde)) → new_esEs14(xuu5002, xuu402, ddd, dde)
new_esEs26(xuu97, xuu100, ty_Bool) → new_esEs20(xuu97, xuu100)
new_ltEs7(False, True) → True
new_ltEs19(xuu98, xuu101, ty_Float) → new_ltEs10(xuu98, xuu101)
new_esEs30(xuu50001, xuu4001, ty_Char) → new_esEs16(xuu50001, xuu4001)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_lt5(xuu96, xuu99, app(ty_[], ced)) → new_lt16(xuu96, xuu99, ced)
new_lt21(xuu111, xuu113, app(ty_Ratio, eeg)) → new_lt18(xuu111, xuu113, eeg)
new_esEs40(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_ltEs20(xuu551, xuu561, app(ty_Ratio, eca)) → new_ltEs16(xuu551, xuu561, eca)
new_compare13(GT, GT) → EQ
new_esEs36(xuu550, xuu560, app(ty_[], bec)) → new_esEs22(xuu550, xuu560, bec)
new_ltEs4(Nothing, Just(xuu560), cgg) → True
new_lt20(xuu550, xuu560, app(app(ty_@2, ge), gf)) → new_lt14(xuu550, xuu560, ge, gf)
new_lt4(xuu97, xuu100, app(ty_Maybe, cch)) → new_lt8(xuu97, xuu100, cch)
new_lt8(xuu500, xuu40, beg) → new_esEs28(new_compare8(xuu500, xuu40, beg))
new_compare15(@0, @0) → EQ
new_lt5(xuu96, xuu99, app(app(ty_Either, cdg), cdh)) → new_lt6(xuu96, xuu99, cdg, cdh)
new_esEs32(xuu111, xuu113, ty_Ordering) → new_esEs13(xuu111, xuu113)
new_lt4(xuu97, xuu100, app(ty_[], cdc)) → new_lt16(xuu97, xuu100, cdc)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Ordering, chg) → new_esEs13(xuu50000, xuu4000)
new_lt23(xuu550, xuu560, ty_Float) → new_lt12(xuu550, xuu560)
new_ltEs24(xuu55, xuu56, app(ty_Maybe, cgg)) → new_ltEs4(xuu55, xuu56, cgg)
new_ltEs19(xuu98, xuu101, ty_Int) → new_ltEs8(xuu98, xuu101)
new_ltEs8(xuu55, xuu56) → new_fsEs(new_compare10(xuu55, xuu56))
new_lt5(xuu96, xuu99, ty_Float) → new_lt12(xuu96, xuu99)
new_primCmpNat0(Zero, Succ(xuu4000)) → LT
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(app(app(ty_@3, db), dc), dd)) → new_ltEs17(xuu550, xuu560, db, dc, dd)
new_esEs30(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_ltEs24(xuu55, xuu56, ty_Int) → new_ltEs8(xuu55, xuu56)
new_esEs26(xuu97, xuu100, app(app(ty_@2, cda), cdb)) → new_esEs14(xuu97, xuu100, cda, cdb)
new_compare115(xuu155, xuu156, False, egf) → GT
new_lt13(xuu500, xuu40) → new_esEs28(new_compare13(xuu500, xuu40))
new_ltEs22(xuu552, xuu562, app(app(app(ty_@3, bca), bcb), bcc)) → new_ltEs17(xuu552, xuu562, bca, bcb, bcc)
new_esEs7(xuu5001, xuu401, ty_Ordering) → new_esEs13(xuu5001, xuu401)
new_esEs38(xuu50002, xuu4002, ty_Ordering) → new_esEs13(xuu50002, xuu4002)
new_lt22(xuu551, xuu561, ty_Float) → new_lt12(xuu551, xuu561)
new_esEs39(xuu50001, xuu4001, ty_Bool) → new_esEs20(xuu50001, xuu4001)
new_lt10(xuu500, xuu40) → new_esEs28(new_compare10(xuu500, xuu40))
new_esEs9(xuu5002, xuu402, app(app(app(ty_@3, dec), ded), dee)) → new_esEs25(xuu5002, xuu402, dec, ded, dee)
new_ltEs18(xuu62, xuu63, ty_@0) → new_ltEs13(xuu62, xuu63)
new_lt20(xuu550, xuu560, ty_@0) → new_lt15(xuu550, xuu560)
new_esEs36(xuu550, xuu560, ty_Bool) → new_esEs20(xuu550, xuu560)
new_lt21(xuu111, xuu113, app(app(app(ty_@3, bhb), bhc), bhd)) → new_lt19(xuu111, xuu113, bhb, bhc, bhd)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Char, bb) → new_ltEs6(xuu550, xuu560)
new_lt22(xuu551, xuu561, ty_Integer) → new_lt17(xuu551, xuu561)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Integer, bb) → new_ltEs15(xuu550, xuu560)
new_esEs9(xuu5002, xuu402, ty_Float) → new_esEs23(xuu5002, xuu402)
new_lt5(xuu96, xuu99, app(app(app(ty_@3, cee), cef), ceg)) → new_lt19(xuu96, xuu99, cee, cef, ceg)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Int, chg) → new_esEs17(xuu50000, xuu4000)
new_lt11(xuu500, xuu40) → new_esEs28(new_compare11(xuu500, xuu40))
new_compare115(xuu155, xuu156, True, egf) → LT
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_Maybe, ebb)) → new_esEs21(xuu50000, xuu4000, ebb)
new_esEs10(xuu5001, xuu401, app(app(ty_@2, dhe), dhf)) → new_esEs14(xuu5001, xuu401, dhe, dhf)
new_esEs31(xuu50000, xuu4000, app(app(ty_Either, eeb), eec)) → new_esEs24(xuu50000, xuu4000, eeb, eec)
new_esEs21(Nothing, Nothing, chd) → True
new_esEs27(xuu96, xuu99, ty_Ordering) → new_esEs13(xuu96, xuu99)
new_lt21(xuu111, xuu113, ty_Double) → new_lt11(xuu111, xuu113)
new_compare0([], [], hd) → EQ
new_ltEs21(xuu112, xuu114, ty_Char) → new_ltEs6(xuu112, xuu114)
new_pePe(True, xuu201) → True
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_Ratio, efb), bb) → new_ltEs16(xuu550, xuu560, efb)
new_primEqNat0(Zero, Zero) → True
new_esEs38(xuu50002, xuu4002, ty_Char) → new_esEs16(xuu50002, xuu4002)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(app(ty_@3, ec), ed), ee)) → new_ltEs17(xuu550, xuu560, ec, ed, ee)
new_ltEs14(xuu55, xuu56, hc) → new_fsEs(new_compare0(xuu55, xuu56, hc))
new_esEs7(xuu5001, xuu401, app(app(app(ty_@3, egc), egd), ege)) → new_esEs25(xuu5001, xuu401, egc, egd, ege)
new_ltEs18(xuu62, xuu63, ty_Float) → new_ltEs10(xuu62, xuu63)
new_esEs25(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), chh, daa, dab) → new_asAs(new_esEs40(xuu50000, xuu4000, chh), new_asAs(new_esEs39(xuu50001, xuu4001, daa), new_esEs38(xuu50002, xuu4002, dab)))
new_esEs29(xuu550, xuu560, ty_Ordering) → new_esEs13(xuu550, xuu560)
new_esEs32(xuu111, xuu113, app(ty_[], bha)) → new_esEs22(xuu111, xuu113, bha)
new_esEs33(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_esEs31(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_compare6(Right(xuu5000), Right(xuu400), baf, bag) → new_compare26(xuu5000, xuu400, new_esEs5(xuu5000, xuu400, bag), baf, bag)
new_esEs13(LT, GT) → False
new_esEs13(GT, LT) → False
new_esEs27(xuu96, xuu99, app(ty_Maybe, cea)) → new_esEs21(xuu96, xuu99, cea)
new_esEs32(xuu111, xuu113, app(app(app(ty_@3, bhb), bhc), bhd)) → new_esEs25(xuu111, xuu113, bhb, bhc, bhd)
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(app(ty_@2, cf), cg)) → new_ltEs12(xuu550, xuu560, cf, cg)
new_esEs27(xuu96, xuu99, ty_Float) → new_esEs23(xuu96, xuu99)
new_esEs11(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_compare29(xuu69, xuu70, False, faf) → new_compare115(xuu69, xuu70, new_ltEs23(xuu69, xuu70, faf), faf)
new_esEs7(xuu5001, xuu401, ty_Bool) → new_esEs20(xuu5001, xuu401)
new_esEs39(xuu50001, xuu4001, ty_Ordering) → new_esEs13(xuu50001, xuu4001)
new_esEs28(EQ) → False
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_esEs37(xuu50000, xuu4000, app(ty_Ratio, ehd)) → new_esEs18(xuu50000, xuu4000, ehd)
new_compare110(xuu141, xuu142, False, cge, cgf) → GT
new_esEs11(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs31(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_compare5(xuu5000, xuu400, ty_Char) → new_compare7(xuu5000, xuu400)
new_esEs37(xuu50000, xuu4000, app(ty_Maybe, ehe)) → new_esEs21(xuu50000, xuu4000, ehe)
new_sr(xuu5000, xuu400) → new_primMulInt(xuu5000, xuu400)
new_esEs29(xuu550, xuu560, ty_Float) → new_esEs23(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_esEs5(xuu5000, xuu400, app(app(ty_@2, dac), dad)) → new_esEs14(xuu5000, xuu400, dac, dad)
new_esEs7(xuu5001, xuu401, app(ty_Maybe, efg)) → new_esEs21(xuu5001, xuu401, efg)
new_esEs30(xuu50001, xuu4001, app(ty_[], ecg)) → new_esEs22(xuu50001, xuu4001, ecg)
new_esEs31(xuu50000, xuu4000, app(app(app(ty_@3, eed), eee), eef)) → new_esEs25(xuu50000, xuu4000, eed, eee, eef)
new_esEs29(xuu550, xuu560, ty_Bool) → new_esEs20(xuu550, xuu560)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_lt22(xuu551, xuu561, app(ty_Ratio, egh)) → new_lt18(xuu551, xuu561, egh)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(ty_@2, dh), ea)) → new_ltEs12(xuu550, xuu560, dh, ea)
new_lt4(xuu97, xuu100, app(app(ty_Either, cce), ccf)) → new_lt6(xuu97, xuu100, cce, ccf)
new_lt22(xuu551, xuu561, app(ty_Maybe, bcg)) → new_lt8(xuu551, xuu561, bcg)
new_lt22(xuu551, xuu561, app(ty_[], bdb)) → new_lt16(xuu551, xuu561, bdb)
new_esEs37(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_ltEs18(xuu62, xuu63, app(app(ty_Either, cfa), cfb)) → new_ltEs5(xuu62, xuu63, cfa, cfb)
new_ltEs22(xuu552, xuu562, ty_Double) → new_ltEs9(xuu552, xuu562)
new_esEs16(Char(xuu50000), Char(xuu4000)) → new_primEqNat0(xuu50000, xuu4000)
new_lt20(xuu550, xuu560, ty_Bool) → new_lt9(xuu550, xuu560)
new_esEs9(xuu5002, xuu402, app(ty_[], ddh)) → new_esEs22(xuu5002, xuu402, ddh)
new_lt23(xuu550, xuu560, app(ty_Ratio, eha)) → new_lt18(xuu550, xuu560, eha)
new_esEs26(xuu97, xuu100, ty_Integer) → new_esEs12(xuu97, xuu100)
new_lt4(xuu97, xuu100, app(app(app(ty_@3, cdd), cde), cdf)) → new_lt19(xuu97, xuu100, cdd, cde, cdf)
new_esEs9(xuu5002, xuu402, ty_Int) → new_esEs17(xuu5002, xuu402)
new_esEs27(xuu96, xuu99, app(app(ty_@2, ceb), cec)) → new_esEs14(xuu96, xuu99, ceb, cec)
new_primEqInt(Neg(Succ(xuu500000)), Neg(Succ(xuu40000))) → new_primEqNat0(xuu500000, xuu40000)
new_esEs8(xuu5000, xuu400, app(ty_Maybe, dfa)) → new_esEs21(xuu5000, xuu400, dfa)
new_compare17(:%(xuu5000, xuu5001), :%(xuu400, xuu401), ty_Int) → new_compare10(new_sr(xuu5000, xuu401), new_sr(xuu400, xuu5001))
new_esEs5(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_ltEs21(xuu112, xuu114, app(ty_Ratio, eeh)) → new_ltEs16(xuu112, xuu114, eeh)
new_esEs5(xuu5000, xuu400, app(ty_[], dag)) → new_esEs22(xuu5000, xuu400, dag)
new_esEs35(xuu551, xuu561, ty_Double) → new_esEs19(xuu551, xuu561)
new_ltEs21(xuu112, xuu114, ty_Int) → new_ltEs8(xuu112, xuu114)
new_esEs8(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_ltEs4(Nothing, Nothing, cgg) → True
new_esEs6(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs29(xuu550, xuu560, app(app(ty_@2, ge), gf)) → new_esEs14(xuu550, xuu560, ge, gf)
new_lt22(xuu551, xuu561, ty_Ordering) → new_lt13(xuu551, xuu561)
new_esEs39(xuu50001, xuu4001, app(ty_[], ffc)) → new_esEs22(xuu50001, xuu4001, ffc)
new_esEs38(xuu50002, xuu4002, ty_Bool) → new_esEs20(xuu50002, xuu4002)
new_esEs7(xuu5001, xuu401, ty_Integer) → new_esEs12(xuu5001, xuu401)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_esEs10(xuu5001, xuu401, app(ty_Maybe, dhh)) → new_esEs21(xuu5001, xuu401, dhh)
new_esEs5(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_compare25(xuu55, xuu56, False, fhc, bah) → new_compare110(xuu55, xuu56, new_ltEs24(xuu55, xuu56, fhc), fhc, bah)
new_esEs11(xuu5000, xuu400, app(app(ty_Either, dcg), dch)) → new_esEs24(xuu5000, xuu400, dcg, dch)
new_compare111(xuu168, xuu169, xuu170, xuu171, False, xuu173, cgc, cgd) → new_compare19(xuu168, xuu169, xuu170, xuu171, xuu173, cgc, cgd)
new_esEs10(xuu5001, xuu401, app(app(ty_Either, eab), eac)) → new_esEs24(xuu5001, xuu401, eab, eac)
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_[], eb)) → new_ltEs14(xuu550, xuu560, eb)
new_ltEs9(xuu55, xuu56) → new_fsEs(new_compare11(xuu55, xuu56))
new_esEs5(xuu5000, xuu400, app(app(app(ty_@3, dbb), dbc), dbd)) → new_esEs25(xuu5000, xuu400, dbb, dbc, dbd)
new_compare112(xuu148, xuu149, False, fad, fae) → GT
new_ltEs24(xuu55, xuu56, ty_Float) → new_ltEs10(xuu55, xuu56)
new_esEs29(xuu550, xuu560, ty_Int) → new_esEs17(xuu550, xuu560)
new_compare13(LT, LT) → EQ
new_primEqInt(Neg(Zero), Neg(Succ(xuu40000))) → False
new_primEqInt(Neg(Succ(xuu500000)), Neg(Zero)) → False
new_esEs26(xuu97, xuu100, ty_Float) → new_esEs23(xuu97, xuu100)
new_lt22(xuu551, xuu561, ty_Double) → new_lt11(xuu551, xuu561)
new_esEs39(xuu50001, xuu4001, ty_Char) → new_esEs16(xuu50001, xuu4001)
new_ltEs21(xuu112, xuu114, app(ty_[], cac)) → new_ltEs14(xuu112, xuu114, cac)
new_compare26(xuu62, xuu63, True, ceh, dbe) → EQ
new_compare9(False, False) → EQ
new_compare12(Float(xuu5000, xuu5001), Float(xuu400, xuu401)) → new_compare10(new_sr(xuu5000, xuu400), new_sr(xuu5001, xuu401))
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Char) → new_ltEs6(xuu550, xuu560)
new_esEs31(xuu50000, xuu4000, app(ty_Ratio, edg)) → new_esEs18(xuu50000, xuu4000, edg)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(app(ty_Either, fcg), fch)) → new_esEs24(xuu50000, xuu4000, fcg, fch)
new_lt20(xuu550, xuu560, ty_Ordering) → new_lt13(xuu550, xuu560)
new_esEs10(xuu5001, xuu401, ty_Ordering) → new_esEs13(xuu5001, xuu401)
new_compare7(Char(xuu5000), Char(xuu400)) → new_primCmpNat0(xuu5000, xuu400)
new_compare19(xuu168, xuu169, xuu170, xuu171, True, cgc, cgd) → LT
new_lt4(xuu97, xuu100, ty_Int) → new_lt10(xuu97, xuu100)
new_compare13(GT, EQ) → GT
new_esEs40(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_esEs4(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_ltEs13(xuu55, xuu56) → new_fsEs(new_compare15(xuu55, xuu56))
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(ty_Either, ebd), ebe)) → new_esEs24(xuu50000, xuu4000, ebd, ebe)
new_esEs40(xuu50000, xuu4000, app(app(app(ty_@3, fgh), fha), fhb)) → new_esEs25(xuu50000, xuu4000, fgh, fha, fhb)
new_compare5(xuu5000, xuu400, ty_Ordering) → new_compare13(xuu5000, xuu400)
new_esEs31(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_compare17(:%(xuu5000, xuu5001), :%(xuu400, xuu401), ty_Integer) → new_compare16(new_sr0(xuu5000, xuu401), new_sr0(xuu400, xuu5001))
new_ltEs18(xuu62, xuu63, app(ty_Ratio, dbf)) → new_ltEs16(xuu62, xuu63, dbf)
new_primCmpNat0(Succ(xuu50000), Succ(xuu4000)) → new_primCmpNat0(xuu50000, xuu4000)
new_esEs30(xuu50001, xuu4001, ty_@0) → new_esEs15(xuu50001, xuu4001)
new_ltEs23(xuu69, xuu70, app(ty_Maybe, bfb)) → new_ltEs4(xuu69, xuu70, bfb)
new_esEs13(LT, LT) → True
new_primEqInt(Pos(Succ(xuu500000)), Pos(Succ(xuu40000))) → new_primEqNat0(xuu500000, xuu40000)
new_ltEs24(xuu55, xuu56, ty_@0) → new_ltEs13(xuu55, xuu56)
new_esEs11(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_esEs39(xuu50001, xuu4001, app(ty_Ratio, ffa)) → new_esEs18(xuu50001, xuu4001, ffa)
new_ltEs5(Left(xuu550), Left(xuu560), app(app(ty_Either, h), ba), bb) → new_ltEs5(xuu550, xuu560, h, ba)
new_compare6(Left(xuu5000), Left(xuu400), baf, bag) → new_compare25(xuu5000, xuu400, new_esEs4(xuu5000, xuu400, baf), baf, bag)
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_[], ebc)) → new_esEs22(xuu50000, xuu4000, ebc)
new_ltEs16(xuu55, xuu56, efa) → new_fsEs(new_compare17(xuu55, xuu56, efa))
new_esEs36(xuu550, xuu560, ty_Float) → new_esEs23(xuu550, xuu560)
new_compare8(Nothing, Nothing, beg) → EQ
new_esEs40(xuu50000, xuu4000, app(ty_Ratio, fgc)) → new_esEs18(xuu50000, xuu4000, fgc)
new_lt22(xuu551, xuu561, app(app(ty_@2, bch), bda)) → new_lt14(xuu551, xuu561, bch, bda)
new_lt23(xuu550, xuu560, ty_Ordering) → new_lt13(xuu550, xuu560)
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(ty_Ratio, efc)) → new_ltEs16(xuu550, xuu560, efc)
new_primEqNat0(Succ(xuu500000), Succ(xuu40000)) → new_primEqNat0(xuu500000, xuu40000)
new_esEs39(xuu50001, xuu4001, ty_Double) → new_esEs19(xuu50001, xuu4001)
new_lt15(xuu500, xuu40) → new_esEs28(new_compare15(xuu500, xuu40))
new_esEs6(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_ltEs21(xuu112, xuu114, ty_Ordering) → new_ltEs11(xuu112, xuu114)
new_ltEs22(xuu552, xuu562, ty_Char) → new_ltEs6(xuu552, xuu562)
new_compare13(LT, EQ) → LT
new_esEs38(xuu50002, xuu4002, app(app(ty_@2, fde), fdf)) → new_esEs14(xuu50002, xuu4002, fde, fdf)
new_ltEs19(xuu98, xuu101, app(ty_[], cca)) → new_ltEs14(xuu98, xuu101, cca)
new_esEs27(xuu96, xuu99, ty_Char) → new_esEs16(xuu96, xuu99)
new_esEs30(xuu50001, xuu4001, app(ty_Ratio, ece)) → new_esEs18(xuu50001, xuu4001, ece)
new_compare18(@3(xuu5000, xuu5001, xuu5002), @3(xuu400, xuu401, xuu402), cag, cah, cba) → new_compare27(xuu5000, xuu5001, xuu5002, xuu400, xuu401, xuu402, new_asAs(new_esEs11(xuu5000, xuu400, cag), new_asAs(new_esEs10(xuu5001, xuu401, cah), new_esEs9(xuu5002, xuu402, cba))), cag, cah, cba)
new_lt20(xuu550, xuu560, ty_Integer) → new_lt17(xuu550, xuu560)
new_lt4(xuu97, xuu100, ty_Double) → new_lt11(xuu97, xuu100)
new_primCompAux00(xuu86, LT) → LT
new_ltEs18(xuu62, xuu63, app(ty_[], cff)) → new_ltEs14(xuu62, xuu63, cff)
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Double) → new_ltEs9(xuu550, xuu560)
new_primCmpInt(Neg(Succ(xuu50000)), Neg(xuu400)) → new_primCmpNat0(xuu400, Succ(xuu50000))
new_lt16(xuu500, xuu40, hd) → new_esEs28(new_compare0(xuu500, xuu40, hd))
new_esEs40(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_lt21(xuu111, xuu113, ty_Integer) → new_lt17(xuu111, xuu113)
new_esEs4(xuu5000, xuu400, app(app(ty_@2, cha), chb)) → new_esEs14(xuu5000, xuu400, cha, chb)
new_ltEs24(xuu55, xuu56, app(app(ty_Either, cb), bb)) → new_ltEs5(xuu55, xuu56, cb, bb)
new_ltEs18(xuu62, xuu63, app(app(ty_@2, cfd), cfe)) → new_ltEs12(xuu62, xuu63, cfd, cfe)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_esEs40(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_primEqInt(Pos(Zero), Pos(Succ(xuu40000))) → False
new_primEqInt(Pos(Succ(xuu500000)), Pos(Zero)) → False
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(app(ty_@2, fcb), fcc)) → new_esEs14(xuu50000, xuu4000, fcb, fcc)
new_esEs30(xuu50001, xuu4001, ty_Ordering) → new_esEs13(xuu50001, xuu4001)
new_primPlusNat0(Succ(xuu44200), Zero) → Succ(xuu44200)
new_primPlusNat0(Zero, Succ(xuu13100)) → Succ(xuu13100)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(ty_Ratio, fcd)) → new_esEs18(xuu50000, xuu4000, fcd)
new_ltEs23(xuu69, xuu70, ty_Float) → new_ltEs10(xuu69, xuu70)
new_primCmpNat0(Zero, Zero) → EQ
new_compare27(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, True, cbb, cbc, ccg) → EQ
new_ltEs11(GT, EQ) → False
new_esEs27(xuu96, xuu99, app(app(ty_Either, cdg), cdh)) → new_esEs24(xuu96, xuu99, cdg, cdh)
new_primCmpNat0(Succ(xuu50000), Zero) → GT
new_esEs38(xuu50002, xuu4002, ty_@0) → new_esEs15(xuu50002, xuu4002)
new_lt23(xuu550, xuu560, ty_Char) → new_lt7(xuu550, xuu560)
new_primCmpInt(Neg(Zero), Pos(Succ(xuu4000))) → LT
new_compare5(xuu5000, xuu400, app(app(ty_@2, hh), baa)) → new_compare14(xuu5000, xuu400, hh, baa)
new_esEs4(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_lt5(xuu96, xuu99, ty_Char) → new_lt7(xuu96, xuu99)
new_sr0(Integer(xuu50000), Integer(xuu4010)) → Integer(new_primMulInt(xuu50000, xuu4010))
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Int) → new_esEs17(xuu50000, xuu4000)
new_esEs29(xuu550, xuu560, app(ty_Ratio, ecb)) → new_esEs18(xuu550, xuu560, ecb)
new_ltEs19(xuu98, xuu101, app(app(ty_@2, cbg), cbh)) → new_ltEs12(xuu98, xuu101, cbg, cbh)
new_esEs4(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_Maybe, fbc), chg) → new_esEs21(xuu50000, xuu4000, fbc)
new_primEqInt(Neg(Succ(xuu500000)), Pos(xuu4000)) → False
new_primEqInt(Pos(Succ(xuu500000)), Neg(xuu4000)) → False
new_ltEs20(xuu551, xuu561, app(ty_[], fd)) → new_ltEs14(xuu551, xuu561, fd)
new_esEs36(xuu550, xuu560, app(ty_Ratio, eha)) → new_esEs18(xuu550, xuu560, eha)
new_lt6(xuu500, xuu40, baf, bag) → new_esEs28(new_compare6(xuu500, xuu40, baf, bag))
new_ltEs4(Just(xuu550), Just(xuu560), ty_@0) → new_ltEs13(xuu550, xuu560)
new_esEs36(xuu550, xuu560, ty_Ordering) → new_esEs13(xuu550, xuu560)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Integer, chg) → new_esEs12(xuu50000, xuu4000)
new_lt5(xuu96, xuu99, app(ty_Ratio, dca)) → new_lt18(xuu96, xuu99, dca)
new_esEs20(False, False) → True
new_esEs38(xuu50002, xuu4002, app(ty_Ratio, fdg)) → new_esEs18(xuu50002, xuu4002, fdg)
new_esEs32(xuu111, xuu113, app(ty_Maybe, bgf)) → new_esEs21(xuu111, xuu113, bgf)
new_lt5(xuu96, xuu99, ty_Bool) → new_lt9(xuu96, xuu99)
new_esEs30(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_esEs26(xuu97, xuu100, ty_Int) → new_esEs17(xuu97, xuu100)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs5(xuu5000, xuu400, app(ty_Maybe, daf)) → new_esEs21(xuu5000, xuu400, daf)
new_ltEs11(GT, LT) → False
new_primEqInt(Neg(Zero), Pos(Succ(xuu40000))) → False
new_primEqInt(Pos(Zero), Neg(Succ(xuu40000))) → False
new_esEs30(xuu50001, xuu4001, app(ty_Maybe, ecf)) → new_esEs21(xuu50001, xuu4001, ecf)
new_compare11(Double(xuu5000, xuu5001), Double(xuu400, xuu401)) → new_compare10(new_sr(xuu5000, xuu400), new_sr(xuu5001, xuu401))
new_esEs8(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_primCmpInt(Pos(Zero), Pos(Succ(xuu4000))) → new_primCmpNat0(Zero, Succ(xuu4000))
new_primCompAux00(xuu86, EQ) → xuu86
new_esEs6(xuu5000, xuu400, app(ty_Maybe, dgc)) → new_esEs21(xuu5000, xuu400, dgc)
new_esEs8(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(ty_Maybe, ce)) → new_ltEs4(xuu550, xuu560, ce)
new_ltEs12(@2(xuu550, xuu551), @2(xuu560, xuu561), ef, gc) → new_pePe(new_lt20(xuu550, xuu560, ef), new_asAs(new_esEs29(xuu550, xuu560, ef), new_ltEs20(xuu551, xuu561, gc)))
new_ltEs4(Just(xuu550), Just(xuu560), ty_Char) → new_ltEs6(xuu550, xuu560)
new_lt22(xuu551, xuu561, ty_Char) → new_lt7(xuu551, xuu561)
new_esEs10(xuu5001, xuu401, ty_Double) → new_esEs19(xuu5001, xuu401)
new_lt17(xuu500, xuu40) → new_esEs28(new_compare16(xuu500, xuu40))
new_compare5(xuu5000, xuu400, ty_Integer) → new_compare16(xuu5000, xuu400)
new_ltEs11(LT, EQ) → True
new_esEs35(xuu551, xuu561, app(ty_Maybe, bcg)) → new_esEs21(xuu551, xuu561, bcg)
new_esEs7(xuu5001, xuu401, ty_Double) → new_esEs19(xuu5001, xuu401)
new_esEs22([], [], che) → True
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(ty_[], fcf)) → new_esEs22(xuu50000, xuu4000, fcf)
new_esEs38(xuu50002, xuu4002, ty_Double) → new_esEs19(xuu50002, xuu4002)
new_esEs6(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_esEs11(xuu5000, xuu400, app(ty_Ratio, dcd)) → new_esEs18(xuu5000, xuu400, dcd)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_ltEs11(LT, LT) → True
new_esEs6(xuu5000, xuu400, app(app(ty_Either, dge), dgf)) → new_esEs24(xuu5000, xuu400, dge, dgf)
new_esEs5(xuu5000, xuu400, app(ty_Ratio, dae)) → new_esEs18(xuu5000, xuu400, dae)
new_not(False) → True
new_esEs6(xuu5000, xuu400, app(app(ty_@2, dfh), dga)) → new_esEs14(xuu5000, xuu400, dfh, dga)
new_ltEs22(xuu552, xuu562, ty_Integer) → new_ltEs15(xuu552, xuu562)
new_ltEs20(xuu551, xuu561, app(app(app(ty_@3, ff), fg), fh)) → new_ltEs17(xuu551, xuu561, ff, fg, fh)
new_compare16(Integer(xuu5000), Integer(xuu400)) → new_primCmpInt(xuu5000, xuu400)
new_compare5(xuu5000, xuu400, ty_@0) → new_compare15(xuu5000, xuu400)
new_primCmpInt(Pos(Succ(xuu50000)), Pos(xuu400)) → new_primCmpNat0(Succ(xuu50000), xuu400)
new_esEs29(xuu550, xuu560, ty_Integer) → new_esEs12(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, app(ty_[], ehf)) → new_esEs22(xuu50000, xuu4000, ehf)
new_ltEs20(xuu551, xuu561, ty_Integer) → new_ltEs15(xuu551, xuu561)
new_esEs9(xuu5002, xuu402, app(app(ty_Either, dea), deb)) → new_esEs24(xuu5002, xuu402, dea, deb)
new_esEs7(xuu5001, xuu401, ty_Char) → new_esEs16(xuu5001, xuu401)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Char, chg) → new_esEs16(xuu50000, xuu4000)
new_esEs31(xuu50000, xuu4000, app(ty_[], eea)) → new_esEs22(xuu50000, xuu4000, eea)
new_esEs26(xuu97, xuu100, app(ty_Ratio, dbh)) → new_esEs18(xuu97, xuu100, dbh)
new_ltEs23(xuu69, xuu70, app(ty_[], bfe)) → new_ltEs14(xuu69, xuu70, bfe)
new_esEs31(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs27(xuu96, xuu99, app(app(app(ty_@3, cee), cef), ceg)) → new_esEs25(xuu96, xuu99, cee, cef, ceg)
new_esEs19(Double(xuu50000, xuu50001), Double(xuu4000, xuu4001)) → new_esEs17(new_sr(xuu50000, xuu4000), new_sr(xuu50001, xuu4001))
new_esEs30(xuu50001, xuu4001, app(app(ty_@2, ecc), ecd)) → new_esEs14(xuu50001, xuu4001, ecc, ecd)
new_lt20(xuu550, xuu560, app(app(ty_Either, ga), gb)) → new_lt6(xuu550, xuu560, ga, gb)
new_esEs24(Left(xuu50000), Right(xuu4000), chf, chg) → False
new_esEs24(Right(xuu50000), Left(xuu4000), chf, chg) → False
new_lt5(xuu96, xuu99, app(app(ty_@2, ceb), cec)) → new_lt14(xuu96, xuu99, ceb, cec)
new_esEs9(xuu5002, xuu402, ty_Char) → new_esEs16(xuu5002, xuu402)
new_esEs32(xuu111, xuu113, app(app(ty_Either, bgc), bgd)) → new_esEs24(xuu111, xuu113, bgc, bgd)
new_compare0(:(xuu5000, xuu5001), [], hd) → GT
new_ltEs5(Left(xuu550), Left(xuu560), app(app(app(ty_@3, bg), bh), ca), bb) → new_ltEs17(xuu550, xuu560, bg, bh, ca)
new_ltEs11(GT, GT) → True
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Ordering) → new_ltEs11(xuu550, xuu560)
new_ltEs22(xuu552, xuu562, app(ty_Ratio, egg)) → new_ltEs16(xuu552, xuu562, egg)
new_ltEs22(xuu552, xuu562, app(app(ty_Either, bbc), bbd)) → new_ltEs5(xuu552, xuu562, bbc, bbd)
new_esEs30(xuu50001, xuu4001, app(app(ty_Either, ech), eda)) → new_esEs24(xuu50001, xuu4001, ech, eda)
new_primCmpInt(Pos(Succ(xuu50000)), Neg(xuu400)) → GT
new_lt21(xuu111, xuu113, app(app(ty_@2, bgg), bgh)) → new_lt14(xuu111, xuu113, bgg, bgh)
new_ltEs18(xuu62, xuu63, ty_Ordering) → new_ltEs11(xuu62, xuu63)
new_esEs27(xuu96, xuu99, ty_@0) → new_esEs15(xuu96, xuu99)
new_ltEs22(xuu552, xuu562, app(ty_[], bbh)) → new_ltEs14(xuu552, xuu562, bbh)
new_esEs4(xuu5000, xuu400, app(app(ty_Either, chf), chg)) → new_esEs24(xuu5000, xuu400, chf, chg)
new_esEs4(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Integer) → new_ltEs15(xuu550, xuu560)
new_ltEs24(xuu55, xuu56, ty_Ordering) → new_ltEs11(xuu55, xuu56)
new_primMulInt(Pos(xuu50000), Pos(xuu4000)) → Pos(new_primMulNat0(xuu50000, xuu4000))
new_lt5(xuu96, xuu99, ty_@0) → new_lt15(xuu96, xuu99)
new_lt4(xuu97, xuu100, ty_@0) → new_lt15(xuu97, xuu100)
new_ltEs22(xuu552, xuu562, ty_Int) → new_ltEs8(xuu552, xuu562)
new_esEs6(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_esEs9(xuu5002, xuu402, app(ty_Ratio, ddf)) → new_esEs18(xuu5002, xuu402, ddf)
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(ty_@2, eag), eah)) → new_esEs14(xuu50000, xuu4000, eag, eah)
new_esEs6(xuu5000, xuu400, app(ty_Ratio, dgb)) → new_esEs18(xuu5000, xuu400, dgb)
new_ltEs21(xuu112, xuu114, app(app(ty_Either, bhf), bhg)) → new_ltEs5(xuu112, xuu114, bhf, bhg)
new_lt21(xuu111, xuu113, ty_Int) → new_lt10(xuu111, xuu113)
new_ltEs21(xuu112, xuu114, app(ty_Maybe, bhh)) → new_ltEs4(xuu112, xuu114, bhh)
new_primMulInt(Neg(xuu50000), Neg(xuu4000)) → Pos(new_primMulNat0(xuu50000, xuu4000))
new_esEs13(GT, GT) → True
new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, False, dhb, dhc, dhd) → GT
new_esEs28(GT) → False
new_esEs6(xuu5000, xuu400, app(ty_[], dgd)) → new_esEs22(xuu5000, xuu400, dgd)
new_ltEs19(xuu98, xuu101, app(app(ty_Either, cbd), cbe)) → new_ltEs5(xuu98, xuu101, cbd, cbe)
new_primEqNat0(Succ(xuu500000), Zero) → False
new_primEqNat0(Zero, Succ(xuu40000)) → False
new_esEs17(xuu5000, xuu400) → new_primEqInt(xuu5000, xuu400)
new_primPlusNat0(Zero, Zero) → Zero
new_ltEs22(xuu552, xuu562, ty_@0) → new_ltEs13(xuu552, xuu562)
new_compare8(Just(xuu5000), Nothing, beg) → GT
new_compare25(xuu55, xuu56, True, fhc, bah) → EQ
new_esEs7(xuu5001, xuu401, ty_@0) → new_esEs15(xuu5001, xuu401)
new_esEs8(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs18(xuu62, xuu63, app(app(app(ty_@3, cfg), cfh), cga)) → new_ltEs17(xuu62, xuu63, cfg, cfh, cga)
new_compare8(Just(xuu5000), Just(xuu400), beg) → new_compare29(xuu5000, xuu400, new_esEs6(xuu5000, xuu400, beg), beg)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_esEs30(xuu50001, xuu4001, app(app(app(ty_@3, edb), edc), edd)) → new_esEs25(xuu50001, xuu4001, edb, edc, edd)
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Bool) → new_ltEs7(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_ltEs21(xuu112, xuu114, ty_Bool) → new_ltEs7(xuu112, xuu114)
new_lt9(xuu500, xuu40) → new_esEs28(new_compare9(xuu500, xuu40))
new_esEs35(xuu551, xuu561, ty_Integer) → new_esEs12(xuu551, xuu561)
new_esEs8(xuu5000, xuu400, app(app(ty_Either, dfc), dfd)) → new_esEs24(xuu5000, xuu400, dfc, dfd)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Int) → new_ltEs8(xuu550, xuu560)
new_esEs32(xuu111, xuu113, ty_Bool) → new_esEs20(xuu111, xuu113)
new_esEs5(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_ltEs19(xuu98, xuu101, ty_Ordering) → new_ltEs11(xuu98, xuu101)
new_compare13(LT, GT) → LT
new_esEs26(xuu97, xuu100, app(app(app(ty_@3, cdd), cde), cdf)) → new_esEs25(xuu97, xuu100, cdd, cde, cdf)
new_esEs27(xuu96, xuu99, ty_Int) → new_esEs17(xuu96, xuu99)
new_ltEs5(Right(xuu550), Right(xuu560), cb, app(ty_[], da)) → new_ltEs14(xuu550, xuu560, da)
new_esEs40(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_esEs9(xuu5002, xuu402, ty_Integer) → new_esEs12(xuu5002, xuu402)
new_esEs40(xuu50000, xuu4000, app(ty_Maybe, fgd)) → new_esEs21(xuu50000, xuu4000, fgd)
new_esEs35(xuu551, xuu561, ty_Char) → new_esEs16(xuu551, xuu561)
new_lt23(xuu550, xuu560, ty_Double) → new_lt11(xuu550, xuu560)
new_esEs10(xuu5001, xuu401, ty_Int) → new_esEs17(xuu5001, xuu401)
new_esEs38(xuu50002, xuu4002, app(app(app(ty_@3, fed), fee), fef)) → new_esEs25(xuu50002, xuu4002, fed, fee, fef)
new_esEs36(xuu550, xuu560, ty_Char) → new_esEs16(xuu550, xuu560)
new_lt4(xuu97, xuu100, app(ty_Ratio, dbh)) → new_lt18(xuu97, xuu100, dbh)
new_lt20(xuu550, xuu560, ty_Double) → new_lt11(xuu550, xuu560)
new_ltEs19(xuu98, xuu101, ty_Bool) → new_ltEs7(xuu98, xuu101)
new_esEs29(xuu550, xuu560, app(app(ty_Either, ga), gb)) → new_esEs24(xuu550, xuu560, ga, gb)
new_lt23(xuu550, xuu560, app(ty_[], bec)) → new_lt16(xuu550, xuu560, bec)
new_esEs4(xuu5000, xuu400, app(app(app(ty_@3, chh), daa), dab)) → new_esEs25(xuu5000, xuu400, chh, daa, dab)
new_esEs35(xuu551, xuu561, ty_@0) → new_esEs15(xuu551, xuu561)
new_lt22(xuu551, xuu561, app(app(app(ty_@3, bdc), bdd), bde)) → new_lt19(xuu551, xuu561, bdc, bdd, bde)
new_compare5(xuu5000, xuu400, app(app(app(ty_@3, bac), bad), bae)) → new_compare18(xuu5000, xuu400, bac, bad, bae)
new_primCmpInt(Neg(Zero), Neg(Succ(xuu4000))) → new_primCmpNat0(Succ(xuu4000), Zero)
new_ltEs23(xuu69, xuu70, ty_Integer) → new_ltEs15(xuu69, xuu70)
new_compare27(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, cbb, cbc, ccg) → new_compare113(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, new_lt5(xuu96, xuu99, cbb), new_asAs(new_esEs27(xuu96, xuu99, cbb), new_pePe(new_lt4(xuu97, xuu100, cbc), new_asAs(new_esEs26(xuu97, xuu100, cbc), new_ltEs19(xuu98, xuu101, ccg)))), cbb, cbc, ccg)
new_primCmpInt(Pos(Zero), Neg(Succ(xuu4000))) → GT
new_ltEs24(xuu55, xuu56, app(ty_Ratio, efa)) → new_ltEs16(xuu55, xuu56, efa)
new_lt22(xuu551, xuu561, app(app(ty_Either, bcd), bce)) → new_lt6(xuu551, xuu561, bcd, bce)
new_lt20(xuu550, xuu560, ty_Char) → new_lt7(xuu550, xuu560)
new_esEs20(True, False) → False
new_esEs20(False, True) → False
new_esEs29(xuu550, xuu560, ty_@0) → new_esEs15(xuu550, xuu560)
new_esEs39(xuu50001, xuu4001, app(app(ty_@2, feg), feh)) → new_esEs14(xuu50001, xuu4001, feg, feh)
new_compare28(xuu111, xuu112, xuu113, xuu114, False, bhe, bge) → new_compare111(xuu111, xuu112, xuu113, xuu114, new_lt21(xuu111, xuu113, bhe), new_asAs(new_esEs32(xuu111, xuu113, bhe), new_ltEs21(xuu112, xuu114, bge)), bhe, bge)
new_ltEs20(xuu551, xuu561, ty_Ordering) → new_ltEs11(xuu551, xuu561)
new_compare5(xuu5000, xuu400, ty_Float) → new_compare12(xuu5000, xuu400)
new_esEs40(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_esEs22(:(xuu50000, xuu50001), :(xuu4000, xuu4001), che) → new_asAs(new_esEs37(xuu50000, xuu4000, che), new_esEs22(xuu50001, xuu4001, che))
new_esEs26(xuu97, xuu100, app(app(ty_Either, cce), ccf)) → new_esEs24(xuu97, xuu100, cce, ccf)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs10(xuu5001, xuu401, app(ty_[], eaa)) → new_esEs22(xuu5001, xuu401, eaa)
new_lt23(xuu550, xuu560, ty_Int) → new_lt10(xuu550, xuu560)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Float) → new_esEs23(xuu50000, xuu4000)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Float, chg) → new_esEs23(xuu50000, xuu4000)
new_esEs31(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_ltEs11(EQ, EQ) → True
new_ltEs21(xuu112, xuu114, ty_Integer) → new_ltEs15(xuu112, xuu114)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Ordering) → new_ltEs11(xuu550, xuu560)
new_lt20(xuu550, xuu560, app(ty_[], gg)) → new_lt16(xuu550, xuu560, gg)
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_Maybe, dg)) → new_ltEs4(xuu550, xuu560, dg)
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_Maybe, bc), bb) → new_ltEs4(xuu550, xuu560, bc)
new_lt4(xuu97, xuu100, ty_Ordering) → new_lt13(xuu97, xuu100)
new_esEs35(xuu551, xuu561, app(app(app(ty_@3, bdc), bdd), bde)) → new_esEs25(xuu551, xuu561, bdc, bdd, bde)
new_ltEs24(xuu55, xuu56, app(app(app(ty_@3, bba), bbb), bcf)) → new_ltEs17(xuu55, xuu56, bba, bbb, bcf)
new_esEs40(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_esEs37(xuu50000, xuu4000, app(app(ty_@2, ehb), ehc)) → new_esEs14(xuu50000, xuu4000, ehb, ehc)
new_esEs39(xuu50001, xuu4001, app(app(ty_Either, ffd), ffe)) → new_esEs24(xuu50001, xuu4001, ffd, ffe)
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_Integer) → new_ltEs15(xuu550, xuu560)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_compare29(xuu69, xuu70, True, faf) → EQ
new_ltEs24(xuu55, xuu56, ty_Char) → new_ltEs6(xuu55, xuu56)
new_esEs6(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_esEs37(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_lt21(xuu111, xuu113, app(app(ty_Either, bgc), bgd)) → new_lt6(xuu111, xuu113, bgc, bgd)
new_esEs22(:(xuu50000, xuu50001), [], che) → False
new_esEs22([], :(xuu4000, xuu4001), che) → False
new_ltEs20(xuu551, xuu561, ty_Bool) → new_ltEs7(xuu551, xuu561)
new_ltEs17(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), bba, bbb, bcf) → new_pePe(new_lt23(xuu550, xuu560, bba), new_asAs(new_esEs36(xuu550, xuu560, bba), new_pePe(new_lt22(xuu551, xuu561, bbb), new_asAs(new_esEs35(xuu551, xuu561, bbb), new_ltEs22(xuu552, xuu562, bcf)))))
new_esEs15(@0, @0) → True
new_ltEs4(Just(xuu550), Just(xuu560), ty_Bool) → new_ltEs7(xuu550, xuu560)
new_ltEs23(xuu69, xuu70, ty_Char) → new_ltEs6(xuu69, xuu70)
new_esEs29(xuu550, xuu560, ty_Double) → new_esEs19(xuu550, xuu560)
new_compare111(xuu168, xuu169, xuu170, xuu171, True, xuu173, cgc, cgd) → new_compare19(xuu168, xuu169, xuu170, xuu171, True, cgc, cgd)
new_esEs11(xuu5000, xuu400, app(app(ty_@2, dcb), dcc)) → new_esEs14(xuu5000, xuu400, dcb, dcc)
new_lt19(xuu500, xuu40, cag, cah, cba) → new_esEs28(new_compare18(xuu500, xuu40, cag, cah, cba))
new_asAs(False, xuu129) → False
new_compare28(xuu111, xuu112, xuu113, xuu114, True, bhe, bge) → EQ
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_Ratio, fbb), chg) → new_esEs18(xuu50000, xuu4000, fbb)
new_lt4(xuu97, xuu100, ty_Integer) → new_lt17(xuu97, xuu100)
new_esEs34(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_primMulInt(Neg(xuu50000), Pos(xuu4000)) → Neg(new_primMulNat0(xuu50000, xuu4000))
new_primMulInt(Pos(xuu50000), Neg(xuu4000)) → Neg(new_primMulNat0(xuu50000, xuu4000))
new_ltEs5(Left(xuu550), Left(xuu560), app(app(ty_@2, bd), be), bb) → new_ltEs12(xuu550, xuu560, bd, be)
new_esEs36(xuu550, xuu560, app(ty_Maybe, bdh)) → new_esEs21(xuu550, xuu560, bdh)
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(ty_@2, fah), fba), chg) → new_esEs14(xuu50000, xuu4000, fah, fba)
new_esEs35(xuu551, xuu561, ty_Int) → new_esEs17(xuu551, xuu561)
new_primMulNat0(Succ(xuu500000), Zero) → Zero
new_primMulNat0(Zero, Succ(xuu40000)) → Zero
new_ltEs18(xuu62, xuu63, ty_Char) → new_ltEs6(xuu62, xuu63)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(ty_Either, de), df)) → new_ltEs5(xuu550, xuu560, de, df)
new_fsEs(xuu196) → new_not(new_esEs13(xuu196, GT))
new_esEs13(EQ, GT) → False
new_esEs13(GT, EQ) → False
new_esEs35(xuu551, xuu561, ty_Bool) → new_esEs20(xuu551, xuu561)
new_esEs21(Just(xuu50000), Nothing, chd) → False
new_esEs21(Nothing, Just(xuu4000), chd) → False
new_esEs9(xuu5002, xuu402, ty_Bool) → new_esEs20(xuu5002, xuu402)
new_esEs39(xuu50001, xuu4001, ty_Float) → new_esEs23(xuu50001, xuu4001)
new_ltEs11(EQ, LT) → False
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(ty_Either, fbe), fbf), chg) → new_esEs24(xuu50000, xuu4000, fbe, fbf)
new_lt23(xuu550, xuu560, app(app(ty_@2, bea), beb)) → new_lt14(xuu550, xuu560, bea, beb)
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_[], fbd), chg) → new_esEs22(xuu50000, xuu4000, fbd)
new_esEs39(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_lt21(xuu111, xuu113, ty_Ordering) → new_lt13(xuu111, xuu113)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Double, bb) → new_ltEs9(xuu550, xuu560)
new_ltEs23(xuu69, xuu70, ty_Double) → new_ltEs9(xuu69, xuu70)
new_compare26(xuu62, xuu63, False, ceh, dbe) → new_compare112(xuu62, xuu63, new_ltEs18(xuu62, xuu63, dbe), ceh, dbe)
new_esEs10(xuu5001, xuu401, app(ty_Ratio, dhg)) → new_esEs18(xuu5001, xuu401, dhg)
new_esEs35(xuu551, xuu561, app(app(ty_@2, bch), bda)) → new_esEs14(xuu551, xuu561, bch, bda)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_@0, chg) → new_esEs15(xuu50000, xuu4000)
new_esEs34(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_lt22(xuu551, xuu561, ty_@0) → new_lt15(xuu551, xuu561)
new_esEs4(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_ltEs22(xuu552, xuu562, ty_Ordering) → new_ltEs11(xuu552, xuu562)
new_esEs5(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs35(xuu551, xuu561, app(ty_[], bdb)) → new_esEs22(xuu551, xuu561, bdb)
new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, dhb, dhc, dhd) → LT
new_esEs37(xuu50000, xuu4000, app(app(ty_Either, ehg), ehh)) → new_esEs24(xuu50000, xuu4000, ehg, ehh)
new_esEs36(xuu550, xuu560, app(app(ty_@2, bea), beb)) → new_esEs14(xuu550, xuu560, bea, beb)
new_compare5(xuu5000, xuu400, app(ty_Ratio, cgb)) → new_compare17(xuu5000, xuu400, cgb)
new_esEs36(xuu550, xuu560, ty_@0) → new_esEs15(xuu550, xuu560)
new_lt20(xuu550, xuu560, app(ty_Ratio, ecb)) → new_lt18(xuu550, xuu560, ecb)
new_ltEs24(xuu55, xuu56, ty_Integer) → new_ltEs15(xuu55, xuu56)
new_esEs8(xuu5000, xuu400, app(ty_Ratio, deh)) → new_esEs18(xuu5000, xuu400, deh)
new_ltEs5(Left(xuu550), Left(xuu560), ty_@0, bb) → new_ltEs13(xuu550, xuu560)
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_Ratio, cgh)) → new_ltEs16(xuu550, xuu560, cgh)
new_esEs26(xuu97, xuu100, ty_Double) → new_esEs19(xuu97, xuu100)
new_esEs31(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_lt5(xuu96, xuu99, ty_Double) → new_lt11(xuu96, xuu99)
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(app(ty_@3, ebf), ebg), ebh)) → new_esEs25(xuu50000, xuu4000, ebf, ebg, ebh)
new_lt21(xuu111, xuu113, ty_@0) → new_lt15(xuu111, xuu113)
new_esEs28(LT) → True
new_esEs38(xuu50002, xuu4002, ty_Float) → new_esEs23(xuu50002, xuu4002)
new_esEs4(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_ltEs23(xuu69, xuu70, app(app(ty_@2, bfc), bfd)) → new_ltEs12(xuu69, xuu70, bfc, bfd)
new_esEs4(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_compare9(False, True) → LT
new_esEs11(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_esEs35(xuu551, xuu561, ty_Ordering) → new_esEs13(xuu551, xuu561)
new_esEs23(Float(xuu50000, xuu50001), Float(xuu4000, xuu4001)) → new_esEs17(new_sr(xuu50000, xuu4000), new_sr(xuu50001, xuu4001))
new_ltEs5(Right(xuu550), Right(xuu560), cb, ty_@0) → new_ltEs13(xuu550, xuu560)
new_ltEs20(xuu551, xuu561, ty_Float) → new_ltEs10(xuu551, xuu561)
new_ltEs21(xuu112, xuu114, ty_@0) → new_ltEs13(xuu112, xuu114)
new_compare5(xuu5000, xuu400, ty_Double) → new_compare11(xuu5000, xuu400)
new_esEs38(xuu50002, xuu4002, ty_Int) → new_esEs17(xuu50002, xuu4002)
new_esEs39(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_compare10(xuu500, xuu40) → new_primCmpInt(xuu500, xuu40)
new_esEs9(xuu5002, xuu402, app(ty_Maybe, ddg)) → new_esEs21(xuu5002, xuu402, ddg)
new_esEs11(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_esEs32(xuu111, xuu113, ty_Int) → new_esEs17(xuu111, xuu113)
new_compare13(EQ, LT) → GT
new_esEs40(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_esEs4(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs31(xuu50000, xuu4000, app(app(ty_@2, ede), edf)) → new_esEs14(xuu50000, xuu4000, ede, edf)
new_esEs8(xuu5000, xuu400, app(app(ty_@2, def), deg)) → new_esEs14(xuu5000, xuu400, def, deg)
new_lt23(xuu550, xuu560, app(ty_Maybe, bdh)) → new_lt8(xuu550, xuu560, bdh)
new_esEs36(xuu550, xuu560, app(app(ty_Either, bdf), bdg)) → new_esEs24(xuu550, xuu560, bdf, bdg)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Int, bb) → new_ltEs8(xuu550, xuu560)
new_ltEs23(xuu69, xuu70, app(ty_Ratio, fag)) → new_ltEs16(xuu69, xuu70, fag)
new_ltEs19(xuu98, xuu101, app(app(app(ty_@3, ccb), ccc), ccd)) → new_ltEs17(xuu98, xuu101, ccb, ccc, ccd)
new_esEs8(xuu5000, xuu400, app(app(app(ty_@3, dfe), dff), dfg)) → new_esEs25(xuu5000, xuu400, dfe, dff, dfg)
new_compare9(True, True) → EQ
new_compare113(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, xuu190, dhb, dhc, dhd) → new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, dhb, dhc, dhd)
new_esEs38(xuu50002, xuu4002, ty_Integer) → new_esEs12(xuu50002, xuu4002)
new_ltEs7(False, False) → True
new_lt4(xuu97, xuu100, app(app(ty_@2, cda), cdb)) → new_lt14(xuu97, xuu100, cda, cdb)
new_esEs32(xuu111, xuu113, app(ty_Ratio, eeg)) → new_esEs18(xuu111, xuu113, eeg)
new_esEs30(xuu50001, xuu4001, ty_Double) → new_esEs19(xuu50001, xuu4001)
new_lt4(xuu97, xuu100, ty_Bool) → new_lt9(xuu97, xuu100)
new_lt21(xuu111, xuu113, ty_Float) → new_lt12(xuu111, xuu113)
new_esEs7(xuu5001, xuu401, app(app(ty_Either, ega), egb)) → new_esEs24(xuu5001, xuu401, ega, egb)
new_esEs29(xuu550, xuu560, ty_Char) → new_esEs16(xuu550, xuu560)
new_esEs18(:%(xuu50000, xuu50001), :%(xuu4000, xuu4001), chc) → new_asAs(new_esEs34(xuu50000, xuu4000, chc), new_esEs33(xuu50001, xuu4001, chc))
new_esEs36(xuu550, xuu560, ty_Int) → new_esEs17(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_esEs31(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_primMulNat0(Succ(xuu500000), Succ(xuu40000)) → new_primPlusNat0(new_primMulNat0(xuu500000, Succ(xuu40000)), Succ(xuu40000))
new_esEs38(xuu50002, xuu4002, app(ty_Maybe, fdh)) → new_esEs21(xuu50002, xuu4002, fdh)
new_ltEs20(xuu551, xuu561, ty_Char) → new_ltEs6(xuu551, xuu561)
new_esEs5(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_esEs37(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_primPlusNat0(Succ(xuu44200), Succ(xuu13100)) → Succ(Succ(new_primPlusNat0(xuu44200, xuu13100)))
new_esEs36(xuu550, xuu560, app(app(app(ty_@3, bed), bee), bef)) → new_esEs25(xuu550, xuu560, bed, bee, bef)
new_lt20(xuu550, xuu560, app(ty_Maybe, gd)) → new_lt8(xuu550, xuu560, gd)
new_compare0([], :(xuu400, xuu401), hd) → LT
new_esEs10(xuu5001, xuu401, app(app(app(ty_@3, ead), eae), eaf)) → new_esEs25(xuu5001, xuu401, ead, eae, eaf)
new_esEs7(xuu5001, xuu401, app(app(ty_@2, efd), efe)) → new_esEs14(xuu5001, xuu401, efd, efe)
new_esEs37(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_lt20(xuu550, xuu560, app(app(app(ty_@3, gh), ha), hb)) → new_lt19(xuu550, xuu560, gh, ha, hb)
new_esEs9(xuu5002, xuu402, ty_Ordering) → new_esEs13(xuu5002, xuu402)
new_asAs(True, xuu129) → xuu129
new_lt23(xuu550, xuu560, ty_Integer) → new_lt17(xuu550, xuu560)
new_ltEs4(Just(xuu550), Nothing, cgg) → False
new_esEs32(xuu111, xuu113, ty_Integer) → new_esEs12(xuu111, xuu113)
new_compare112(xuu148, xuu149, True, fad, fae) → LT
new_esEs9(xuu5002, xuu402, ty_Double) → new_esEs19(xuu5002, xuu402)
new_esEs6(xuu5000, xuu400, app(app(app(ty_@3, dgg), dgh), dha)) → new_esEs25(xuu5000, xuu400, dgg, dgh, dha)
new_ltEs23(xuu69, xuu70, ty_Int) → new_ltEs8(xuu69, xuu70)
new_esEs11(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_esEs32(xuu111, xuu113, ty_Double) → new_esEs19(xuu111, xuu113)
new_ltEs24(xuu55, xuu56, ty_Bool) → new_ltEs7(xuu55, xuu56)
new_lt22(xuu551, xuu561, ty_Bool) → new_lt9(xuu551, xuu561)
new_ltEs20(xuu551, xuu561, app(ty_Maybe, fa)) → new_ltEs4(xuu551, xuu561, fa)
new_ltEs18(xuu62, xuu63, ty_Bool) → new_ltEs7(xuu62, xuu63)
new_lt12(xuu500, xuu40) → new_esEs28(new_compare12(xuu500, xuu40))
new_compare6(Right(xuu5000), Left(xuu400), baf, bag) → GT
new_compare13(EQ, GT) → LT
new_primCompAux0(xuu5000, xuu400, xuu50, hd) → new_primCompAux00(xuu50, new_compare5(xuu5000, xuu400, hd))
new_ltEs6(xuu55, xuu56) → new_fsEs(new_compare7(xuu55, xuu56))
new_esEs30(xuu50001, xuu4001, ty_Bool) → new_esEs20(xuu50001, xuu4001)
new_ltEs23(xuu69, xuu70, ty_@0) → new_ltEs13(xuu69, xuu70)
new_esEs26(xuu97, xuu100, ty_Char) → new_esEs16(xuu97, xuu100)
new_ltEs18(xuu62, xuu63, ty_Integer) → new_ltEs15(xuu62, xuu63)
new_esEs11(xuu5000, xuu400, app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs25(xuu5000, xuu400, dda, ddb, ddc)
new_ltEs20(xuu551, xuu561, ty_Int) → new_ltEs8(xuu551, xuu561)
new_lt5(xuu96, xuu99, ty_Int) → new_lt10(xuu96, xuu99)
new_ltEs23(xuu69, xuu70, ty_Bool) → new_ltEs7(xuu69, xuu70)
new_esEs29(xuu550, xuu560, app(app(app(ty_@3, gh), ha), hb)) → new_esEs25(xuu550, xuu560, gh, ha, hb)
new_ltEs20(xuu551, xuu561, ty_@0) → new_ltEs13(xuu551, xuu561)
new_esEs10(xuu5001, xuu401, ty_Char) → new_esEs16(xuu5001, xuu401)
new_esEs40(xuu50000, xuu4000, app(app(ty_Either, fgf), fgg)) → new_esEs24(xuu50000, xuu4000, fgf, fgg)
new_esEs11(xuu5000, xuu400, app(ty_[], dcf)) → new_esEs22(xuu5000, xuu400, dcf)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Ordering, bb) → new_ltEs11(xuu550, xuu560)
new_compare5(xuu5000, xuu400, ty_Int) → new_compare10(xuu5000, xuu400)
new_esEs7(xuu5001, xuu401, app(ty_Ratio, eff)) → new_esEs18(xuu5001, xuu401, eff)
new_esEs8(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_ltEs23(xuu69, xuu70, app(app(ty_Either, beh), bfa)) → new_ltEs5(xuu69, xuu70, beh, bfa)
new_lt5(xuu96, xuu99, app(ty_Maybe, cea)) → new_lt8(xuu96, xuu99, cea)
new_primCompAux00(xuu86, GT) → GT
new_esEs10(xuu5001, xuu401, ty_@0) → new_esEs15(xuu5001, xuu401)
new_ltEs18(xuu62, xuu63, ty_Double) → new_ltEs9(xuu62, xuu63)
new_compare14(@2(xuu5000, xuu5001), @2(xuu400, xuu401), bga, bgb) → new_compare28(xuu5000, xuu5001, xuu400, xuu401, new_asAs(new_esEs8(xuu5000, xuu400, bga), new_esEs7(xuu5001, xuu401, bgb)), bga, bgb)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_ltEs11(EQ, GT) → True
new_esEs36(xuu550, xuu560, ty_Double) → new_esEs19(xuu550, xuu560)
new_ltEs20(xuu551, xuu561, app(app(ty_Either, eg), eh)) → new_ltEs5(xuu551, xuu561, eg, eh)
new_esEs39(xuu50001, xuu4001, app(app(app(ty_@3, fff), ffg), ffh)) → new_esEs25(xuu50001, xuu4001, fff, ffg, ffh)
new_esEs26(xuu97, xuu100, ty_Ordering) → new_esEs13(xuu97, xuu100)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Bool, bb) → new_ltEs7(xuu550, xuu560)
new_ltEs22(xuu552, xuu562, ty_Float) → new_ltEs10(xuu552, xuu562)
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_ltEs21(xuu112, xuu114, ty_Double) → new_ltEs9(xuu112, xuu114)
new_ltEs22(xuu552, xuu562, ty_Bool) → new_ltEs7(xuu552, xuu562)
new_esEs38(xuu50002, xuu4002, app(app(ty_Either, feb), fec)) → new_esEs24(xuu50002, xuu4002, feb, fec)
new_lt23(xuu550, xuu560, ty_@0) → new_lt15(xuu550, xuu560)
new_primCmpInt(Neg(Succ(xuu50000)), Pos(xuu400)) → LT
new_esEs30(xuu50001, xuu4001, ty_Float) → new_esEs23(xuu50001, xuu4001)
new_esEs5(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs35(xuu551, xuu561, app(ty_Ratio, egh)) → new_esEs18(xuu551, xuu561, egh)
new_esEs24(Right(xuu50000), Right(xuu4000), chf, app(app(app(ty_@3, fda), fdb), fdc)) → new_esEs25(xuu50000, xuu4000, fda, fdb, fdc)
new_not(True) → False
new_ltEs24(xuu55, xuu56, app(ty_[], hc)) → new_ltEs14(xuu55, xuu56, hc)
new_compare5(xuu5000, xuu400, app(ty_[], bab)) → new_compare0(xuu5000, xuu400, bab)
new_esEs27(xuu96, xuu99, ty_Double) → new_esEs19(xuu96, xuu99)

The set Q consists of the following terms:

new_lt5(x0, x1, ty_Char)
new_compare9(False, True)
new_compare8(Just(x0), Nothing, x1)
new_compare9(True, False)
new_esEs26(x0, x1, ty_Float)
new_ltEs20(x0, x1, app(ty_[], x2))
new_esEs7(x0, x1, app(ty_Maybe, x2))
new_esEs29(x0, x1, ty_Char)
new_esEs21(Just(x0), Just(x1), ty_Integer)
new_ltEs23(x0, x1, app(ty_Ratio, x2))
new_esEs31(x0, x1, ty_@0)
new_ltEs11(EQ, GT)
new_ltEs12(@2(x0, x1), @2(x2, x3), x4, x5)
new_ltEs11(GT, EQ)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs24(x0, x1, app(ty_Maybe, x2))
new_esEs33(x0, x1, ty_Int)
new_lt20(x0, x1, ty_Float)
new_esEs10(x0, x1, ty_Ordering)
new_ltEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt18(x0, x1, x2)
new_ltEs22(x0, x1, ty_Ordering)
new_esEs5(x0, x1, ty_Int)
new_lt5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs19(x0, x1, ty_Bool)
new_ltEs22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(Left(x0), Right(x1), x2, x3)
new_esEs24(Right(x0), Left(x1), x2, x3)
new_esEs27(x0, x1, ty_Bool)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(x0, x1, ty_Bool)
new_esEs29(x0, x1, app(ty_[], x2))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_lt22(x0, x1, app(ty_Ratio, x2))
new_compare25(x0, x1, True, x2, x3)
new_esEs29(x0, x1, app(ty_Ratio, x2))
new_esEs37(x0, x1, ty_Integer)
new_ltEs21(x0, x1, ty_Integer)
new_ltEs13(x0, x1)
new_ltEs22(x0, x1, ty_Float)
new_lt21(x0, x1, ty_Bool)
new_esEs22([], [], x0)
new_esEs6(x0, x1, ty_@0)
new_lt21(x0, x1, app(ty_[], x2))
new_compare10(x0, x1)
new_compare15(@0, @0)
new_ltEs18(x0, x1, ty_Integer)
new_ltEs11(EQ, EQ)
new_compare114(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_lt19(x0, x1, x2, x3, x4)
new_esEs27(x0, x1, ty_Double)
new_primPlusNat0(Succ(x0), Zero)
new_esEs26(x0, x1, ty_Int)
new_esEs13(GT, GT)
new_esEs11(x0, x1, ty_Integer)
new_esEs26(x0, x1, ty_Bool)
new_esEs28(EQ)
new_compare5(x0, x1, ty_Char)
new_esEs8(x0, x1, ty_Bool)
new_esEs4(x0, x1, ty_@0)
new_esEs24(Right(x0), Right(x1), x2, ty_Double)
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs20(x0, x1, ty_@0)
new_compare17(:%(x0, x1), :%(x2, x3), ty_Int)
new_ltEs4(Just(x0), Just(x1), app(ty_[], x2))
new_lt5(x0, x1, app(app(ty_@2, x2), x3))
new_compare28(x0, x1, x2, x3, True, x4, x5)
new_compare0([], [], x0)
new_esEs36(x0, x1, app(ty_Ratio, x2))
new_ltEs15(x0, x1)
new_compare26(x0, x1, False, x2, x3)
new_esEs35(x0, x1, app(ty_[], x2))
new_esEs24(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs40(x0, x1, ty_Integer)
new_primMulInt(Neg(x0), Pos(x1))
new_primMulInt(Pos(x0), Neg(x1))
new_ltEs21(x0, x1, app(app(ty_@2, x2), x3))
new_pePe(False, x0)
new_esEs21(Just(x0), Just(x1), ty_Ordering)
new_esEs26(x0, x1, app(ty_[], x2))
new_esEs10(x0, x1, app(app(ty_Either, x2), x3))
new_lt10(x0, x1)
new_lt8(x0, x1, x2)
new_ltEs4(Nothing, Just(x0), x1)
new_esEs21(Just(x0), Just(x1), ty_Char)
new_ltEs21(x0, x1, ty_Float)
new_ltEs22(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, ty_Char)
new_esEs39(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Bool)
new_esEs30(x0, x1, app(app(ty_Either, x2), x3))
new_sr(x0, x1)
new_esEs28(LT)
new_esEs36(x0, x1, ty_Double)
new_esEs6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs35(x0, x1, app(ty_Ratio, x2))
new_esEs35(x0, x1, app(app(ty_Either, x2), x3))
new_esEs37(x0, x1, ty_Bool)
new_esEs29(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, ty_Double)
new_lt12(x0, x1)
new_esEs10(x0, x1, app(ty_Ratio, x2))
new_ltEs22(x0, x1, ty_Double)
new_compare5(x0, x1, ty_@0)
new_esEs12(Integer(x0), Integer(x1))
new_esEs9(x0, x1, app(ty_Maybe, x2))
new_esEs7(x0, x1, app(ty_[], x2))
new_ltEs7(True, True)
new_lt23(x0, x1, ty_Ordering)
new_esEs38(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, app(ty_Ratio, x2))
new_compare9(True, True)
new_esEs24(Right(x0), Right(x1), x2, ty_Int)
new_ltEs18(x0, x1, ty_Float)
new_esEs35(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt23(x0, x1, ty_Double)
new_esEs30(x0, x1, ty_Ordering)
new_lt20(x0, x1, ty_Ordering)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs24(Right(x0), Right(x1), x2, app(ty_[], x3))
new_lt23(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, ty_Ordering)
new_compare27(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_esEs37(x0, x1, ty_Ordering)
new_lt22(x0, x1, ty_Char)
new_lt4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs24(x0, x1, ty_Bool)
new_lt5(x0, x1, ty_Double)
new_esEs37(x0, x1, app(ty_Maybe, x2))
new_ltEs21(x0, x1, app(ty_[], x2))
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_esEs9(x0, x1, ty_Char)
new_compare14(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs35(x0, x1, ty_@0)
new_esEs21(Just(x0), Nothing, x1)
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs31(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_esEs30(x0, x1, ty_Double)
new_ltEs11(GT, LT)
new_esEs10(x0, x1, ty_Float)
new_ltEs11(LT, GT)
new_esEs6(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs7(False, True)
new_ltEs7(True, False)
new_primCompAux0(x0, x1, x2, x3)
new_esEs13(GT, LT)
new_esEs13(LT, GT)
new_lt20(x0, x1, ty_Bool)
new_esEs6(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Int)
new_ltEs22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_lt4(x0, x1, ty_Double)
new_lt22(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs22(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs9(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primEqNat0(Zero, Zero)
new_lt21(x0, x1, app(ty_Maybe, x2))
new_esEs10(x0, x1, ty_Char)
new_primCmpNat0(Zero, Succ(x0))
new_esEs5(x0, x1, ty_Double)
new_ltEs14(x0, x1, x2)
new_esEs4(x0, x1, ty_Float)
new_lt5(x0, x1, ty_Ordering)
new_esEs23(Float(x0, x1), Float(x2, x3))
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs37(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, ty_Int)
new_lt22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs7(x0, x1, ty_Float)
new_esEs32(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_esEs7(x0, x1, ty_Bool)
new_esEs13(EQ, GT)
new_esEs13(GT, EQ)
new_ltEs21(x0, x1, ty_Bool)
new_esEs5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Left(x0), Left(x1), ty_Integer, x2)
new_esEs11(x0, x1, ty_Char)
new_ltEs5(Left(x0), Left(x1), ty_Ordering, x2)
new_primMulNat0(Zero, Zero)
new_ltEs22(x0, x1, ty_Int)
new_esEs29(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, ty_Double)
new_esEs4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_lt16(x0, x1, x2)
new_lt22(x0, x1, ty_Ordering)
new_esEs39(x0, x1, ty_Int)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_compare112(x0, x1, False, x2, x3)
new_compare29(x0, x1, True, x2)
new_ltEs4(Just(x0), Just(x1), ty_Char)
new_esEs7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt4(x0, x1, app(ty_Maybe, x2))
new_esEs36(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(Right(x0), Left(x1), x2, x3)
new_ltEs5(Left(x0), Right(x1), x2, x3)
new_lt21(x0, x1, ty_Ordering)
new_compare13(LT, LT)
new_compare13(GT, GT)
new_lt23(x0, x1, app(ty_[], x2))
new_ltEs21(x0, x1, app(ty_Maybe, x2))
new_compare6(Right(x0), Right(x1), x2, x3)
new_esEs31(x0, x1, ty_Integer)
new_fsEs(x0)
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_esEs6(x0, x1, ty_Integer)
new_lt23(x0, x1, ty_Bool)
new_esEs22([], :(x0, x1), x2)
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs39(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Char)
new_esEs38(x0, x1, app(ty_Maybe, x2))
new_ltEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(Just(x0), Nothing, x1)
new_asAs(True, x0)
new_esEs36(x0, x1, ty_Int)
new_ltEs4(Just(x0), Just(x1), ty_@0)
new_esEs37(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, ty_Int)
new_esEs24(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs8(x0, x1)
new_esEs20(True, True)
new_lt4(x0, x1, ty_Float)
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs4(Just(x0), Just(x1), ty_Int)
new_esEs40(x0, x1, ty_Int)
new_esEs8(x0, x1, ty_Integer)
new_ltEs23(x0, x1, ty_Integer)
new_esEs13(EQ, EQ)
new_esEs24(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs9(x0, x1, ty_Bool)
new_esEs8(x0, x1, ty_Char)
new_lt5(x0, x1, ty_@0)
new_esEs24(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_ltEs22(x0, x1, ty_@0)
new_esEs5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs22(x0, x1, app(ty_Ratio, x2))
new_esEs37(x0, x1, ty_Double)
new_esEs21(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_primMulInt(Neg(x0), Neg(x1))
new_ltEs5(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs37(x0, x1, ty_Char)
new_esEs39(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, ty_Integer)
new_lt23(x0, x1, ty_Char)
new_compare5(x0, x1, app(ty_[], x2))
new_esEs8(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primMulInt(Pos(x0), Pos(x1))
new_lt23(x0, x1, app(app(ty_@2, x2), x3))
new_esEs39(x0, x1, app(app(ty_@2, x2), x3))
new_compare7(Char(x0), Char(x1))
new_esEs4(x0, x1, app(ty_Ratio, x2))
new_esEs7(x0, x1, app(app(ty_@2, x2), x3))
new_compare8(Just(x0), Just(x1), x2)
new_esEs24(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs39(x0, x1, ty_Float)
new_ltEs4(Just(x0), Just(x1), ty_Double)
new_compare5(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, x1, ty_Integer)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Left(x0), Left(x1), app(ty_[], x2), x3)
new_esEs21(Just(x0), Just(x1), ty_@0)
new_lt20(x0, x1, ty_Integer)
new_esEs36(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(Right(x0), Right(x1), x2, ty_Char)
new_ltEs5(Right(x0), Right(x1), x2, ty_Double)
new_compare16(Integer(x0), Integer(x1))
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs35(x0, x1, ty_Float)
new_lt22(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Char)
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs7(x0, x1, app(app(ty_Either, x2), x3))
new_esEs20(True, False)
new_esEs20(False, True)
new_compare13(EQ, GT)
new_compare13(GT, EQ)
new_ltEs20(x0, x1, ty_Integer)
new_esEs29(x0, x1, ty_Double)
new_esEs21(Just(x0), Just(x1), ty_Double)
new_ltEs5(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs20(False, False)
new_lt21(x0, x1, ty_@0)
new_esEs35(x0, x1, ty_Double)
new_esEs5(x0, x1, ty_@0)
new_esEs35(x0, x1, ty_Int)
new_esEs40(x0, x1, ty_Char)
new_esEs10(x0, x1, ty_Double)
new_esEs14(@2(x0, x1), @2(x2, x3), x4, x5)
new_lt4(x0, x1, ty_Int)
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_lt22(x0, x1, app(ty_Maybe, x2))
new_esEs35(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs30(x0, x1, app(ty_Maybe, x2))
new_esEs27(x0, x1, app(ty_[], x2))
new_primPlusNat0(Zero, Zero)
new_esEs24(Left(x0), Left(x1), ty_Char, x2)
new_compare115(x0, x1, False, x2)
new_ltEs21(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_esEs7(x0, x1, app(ty_Ratio, x2))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_esEs24(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs9(x0, x1, ty_Ordering)
new_esEs9(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_compare19(x0, x1, x2, x3, False, x4, x5)
new_compare13(EQ, EQ)
new_compare8(Nothing, Just(x0), x1)
new_lt9(x0, x1)
new_esEs8(x0, x1, ty_Int)
new_esEs34(x0, x1, ty_Integer)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs17(x0, x1)
new_primEqNat0(Succ(x0), Zero)
new_esEs40(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(x0, x1, ty_Float)
new_ltEs24(x0, x1, ty_Double)
new_esEs39(x0, x1, app(ty_[], x2))
new_sr0(Integer(x0), Integer(x1))
new_esEs39(x0, x1, ty_Integer)
new_esEs5(x0, x1, app(ty_Ratio, x2))
new_ltEs24(x0, x1, ty_Integer)
new_esEs29(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Char)
new_esEs5(x0, x1, ty_Char)
new_lt23(x0, x1, ty_Int)
new_esEs39(x0, x1, ty_Double)
new_esEs24(Right(x0), Right(x1), x2, ty_@0)
new_compare5(x0, x1, ty_Double)
new_esEs31(x0, x1, ty_Bool)
new_esEs5(x0, x1, app(ty_Maybe, x2))
new_esEs10(x0, x1, ty_Integer)
new_esEs16(Char(x0), Char(x1))
new_compare5(x0, x1, ty_Int)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs22(:(x0, x1), [], x2)
new_ltEs20(x0, x1, ty_Double)
new_ltEs18(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs9(x0, x1)
new_esEs21(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs24(x0, x1, app(app(ty_Either, x2), x3))
new_esEs36(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs30(x0, x1, ty_Int)
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_esEs32(x0, x1, ty_Double)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs24(Left(x0), Left(x1), ty_Float, x2)
new_esEs29(x0, x1, ty_Ordering)
new_ltEs18(x0, x1, ty_Int)
new_compare8(Nothing, Nothing, x0)
new_esEs4(x0, x1, ty_Char)
new_esEs32(x0, x1, app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, ty_Integer)
new_compare29(x0, x1, False, x2)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_primCompAux00(x0, LT)
new_ltEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs4(x0, x1, ty_Double)
new_esEs29(x0, x1, ty_Bool)
new_ltEs4(Just(x0), Just(x1), ty_Ordering)
new_esEs36(x0, x1, ty_Char)
new_esEs35(x0, x1, ty_Integer)
new_ltEs5(Right(x0), Right(x1), x2, ty_Bool)
new_ltEs19(x0, x1, ty_Char)
new_esEs39(x0, x1, ty_Bool)
new_esEs6(x0, x1, ty_Double)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs37(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt22(x0, x1, ty_Float)
new_esEs5(x0, x1, ty_Integer)
new_ltEs4(Just(x0), Just(x1), ty_Bool)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs30(x0, x1, ty_Float)
new_compare0([], :(x0, x1), x2)
new_esEs38(x0, x1, app(ty_[], x2))
new_ltEs17(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_lt23(x0, x1, app(ty_Ratio, x2))
new_compare0(:(x0, x1), :(x2, x3), x4)
new_ltEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_esEs21(Just(x0), Just(x1), app(ty_Ratio, x2))
new_primPlusNat0(Zero, Succ(x0))
new_esEs36(x0, x1, ty_@0)
new_esEs6(x0, x1, app(ty_Maybe, x2))
new_esEs40(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs18(x0, x1, app(ty_[], x2))
new_ltEs19(x0, x1, ty_Double)
new_esEs37(x0, x1, ty_Int)
new_lt5(x0, x1, app(ty_Maybe, x2))
new_lt21(x0, x1, ty_Char)
new_esEs8(x0, x1, app(ty_[], x2))
new_ltEs5(Right(x0), Right(x1), x2, ty_Integer)
new_esEs9(x0, x1, ty_Float)
new_ltEs5(Left(x0), Left(x1), ty_Float, x2)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs4(Just(x0), Just(x1), ty_Float)
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_esEs18(:%(x0, x1), :%(x2, x3), x4)
new_esEs37(x0, x1, app(ty_Ratio, x2))
new_esEs21(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs6(x0, x1, ty_Bool)
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs32(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs36(x0, x1, ty_Float)
new_compare13(EQ, LT)
new_compare13(LT, EQ)
new_compare110(x0, x1, True, x2, x3)
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_ltEs24(x0, x1, ty_Int)
new_primEqInt(Neg(Zero), Neg(Zero))
new_ltEs6(x0, x1)
new_ltEs21(x0, x1, ty_@0)
new_ltEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_esEs10(x0, x1, ty_Bool)
new_esEs28(GT)
new_ltEs5(Right(x0), Right(x1), x2, ty_Int)
new_compare113(x0, x1, x2, x3, x4, x5, False, x6, x7, x8, x9)
new_esEs29(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_@0)
new_esEs38(x0, x1, ty_Int)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Ordering)
new_esEs11(x0, x1, app(ty_[], x2))
new_esEs7(x0, x1, ty_Char)
new_compare25(x0, x1, False, x2, x3)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs5(Right(x0), Right(x1), x2, ty_Float)
new_esEs30(x0, x1, ty_Integer)
new_lt22(x0, x1, ty_Double)
new_compare5(x0, x1, ty_Bool)
new_lt15(x0, x1)
new_ltEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs37(x0, x1, ty_Float)
new_lt5(x0, x1, ty_Bool)
new_esEs10(x0, x1, app(ty_[], x2))
new_esEs31(x0, x1, ty_Ordering)
new_compare13(LT, GT)
new_esEs37(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare13(GT, LT)
new_esEs6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs32(x0, x1, ty_Float)
new_esEs32(x0, x1, ty_Char)
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs9(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), ty_@0, x2)
new_esEs10(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Int)
new_ltEs23(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs23(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, ty_Double)
new_esEs32(x0, x1, ty_Ordering)
new_esEs4(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_esEs40(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, ty_Double)
new_esEs39(x0, x1, app(ty_Ratio, x2))
new_esEs8(x0, x1, app(app(ty_@2, x2), x3))
new_compare114(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_esEs11(x0, x1, ty_Int)
new_primCmpNat0(Succ(x0), Zero)
new_lt4(x0, x1, app(ty_Ratio, x2))
new_ltEs11(LT, LT)
new_lt4(x0, x1, app(app(ty_Either, x2), x3))
new_esEs31(x0, x1, ty_Double)
new_ltEs23(x0, x1, ty_@0)
new_compare5(x0, x1, ty_Integer)
new_esEs6(x0, x1, app(ty_[], x2))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_esEs19(Double(x0, x1), Double(x2, x3))
new_esEs11(x0, x1, ty_Double)
new_compare19(x0, x1, x2, x3, True, x4, x5)
new_lt5(x0, x1, app(ty_[], x2))
new_esEs25(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs5(x0, x1, ty_Bool)
new_ltEs11(EQ, LT)
new_ltEs11(LT, EQ)
new_compare12(Float(x0, x1), Float(x2, x3))
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs38(x0, x1, ty_Bool)
new_ltEs18(x0, x1, ty_Char)
new_lt5(x0, x1, ty_Float)
new_esEs24(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_ltEs20(x0, x1, ty_Bool)
new_lt4(x0, x1, ty_@0)
new_esEs5(x0, x1, ty_Float)
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_lt4(x0, x1, app(ty_[], x2))
new_ltEs22(x0, x1, ty_Bool)
new_ltEs5(Left(x0), Left(x1), ty_Double, x2)
new_compare11(Double(x0, x1), Double(x2, x3))
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs21(x0, x1, ty_Double)
new_esEs10(x0, x1, app(app(ty_@2, x2), x3))
new_esEs8(x0, x1, ty_@0)
new_esEs26(x0, x1, ty_Ordering)
new_esEs40(x0, x1, ty_Ordering)
new_primCmpNat0(Zero, Zero)
new_primCompAux00(x0, EQ)
new_lt23(x0, x1, ty_Integer)
new_esEs31(x0, x1, ty_Float)
new_ltEs5(Right(x0), Right(x1), x2, ty_@0)
new_esEs22(:(x0, x1), :(x2, x3), x4)
new_ltEs5(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_ltEs18(x0, x1, ty_@0)
new_ltEs22(x0, x1, ty_Char)
new_esEs10(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs39(x0, x1, ty_Char)
new_esEs36(x0, x1, app(ty_Maybe, x2))
new_esEs24(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs21(Just(x0), Just(x1), app(ty_[], x2))
new_lt5(x0, x1, app(ty_Ratio, x2))
new_esEs15(@0, @0)
new_lt22(x0, x1, ty_Bool)
new_lt5(x0, x1, app(app(ty_Either, x2), x3))
new_primPlusNat0(Succ(x0), Succ(x1))
new_esEs7(x0, x1, ty_Int)
new_esEs7(x0, x1, ty_Ordering)
new_lt11(x0, x1)
new_esEs24(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_ltEs5(Left(x0), Left(x1), ty_Integer, x2)
new_lt23(x0, x1, ty_@0)
new_ltEs23(x0, x1, ty_Bool)
new_ltEs23(x0, x1, ty_Int)
new_ltEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, ty_@0)
new_esEs10(x0, x1, app(ty_Maybe, x2))
new_esEs27(x0, x1, ty_Integer)
new_lt22(x0, x1, app(ty_[], x2))
new_lt21(x0, x1, ty_Float)
new_ltEs19(x0, x1, ty_Integer)
new_ltEs23(x0, x1, ty_Ordering)
new_esEs5(x0, x1, app(ty_[], x2))
new_esEs5(x0, x1, ty_Ordering)
new_esEs29(x0, x1, ty_Int)
new_esEs13(LT, LT)
new_esEs11(x0, x1, ty_Bool)
new_lt4(x0, x1, ty_Bool)
new_lt22(x0, x1, ty_@0)
new_lt22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs30(x0, x1, ty_Bool)
new_lt23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_ltEs18(x0, x1, ty_Ordering)
new_esEs30(x0, x1, ty_Char)
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_primMulNat0(Succ(x0), Zero)
new_compare110(x0, x1, False, x2, x3)
new_ltEs23(x0, x1, app(ty_Maybe, x2))
new_compare17(:%(x0, x1), :%(x2, x3), ty_Integer)
new_esEs8(x0, x1, app(ty_Ratio, x2))
new_compare27(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_esEs21(Nothing, Nothing, x0)
new_ltEs16(x0, x1, x2)
new_primEqNat0(Zero, Succ(x0))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_esEs38(x0, x1, ty_Integer)
new_ltEs24(x0, x1, ty_Ordering)
new_esEs30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, ty_@0)
new_ltEs23(x0, x1, ty_Float)
new_compare112(x0, x1, True, x2, x3)
new_ltEs19(x0, x1, ty_Float)
new_esEs33(x0, x1, ty_Integer)
new_esEs21(Just(x0), Just(x1), ty_Bool)
new_ltEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs23(x0, x1, ty_Double)
new_ltEs24(x0, x1, ty_Char)
new_lt21(x0, x1, ty_Integer)
new_esEs32(x0, x1, ty_Int)
new_esEs30(x0, x1, app(ty_Ratio, x2))
new_esEs8(x0, x1, app(app(ty_Either, x2), x3))
new_lt7(x0, x1)
new_lt4(x0, x1, ty_Char)
new_esEs7(x0, x1, ty_Integer)
new_not(True)
new_esEs40(x0, x1, ty_Double)
new_esEs40(x0, x1, app(ty_Ratio, x2))
new_esEs6(x0, x1, ty_Char)
new_ltEs24(x0, x1, ty_Float)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_esEs8(x0, x1, ty_Double)
new_esEs36(x0, x1, app(ty_[], x2))
new_esEs13(LT, EQ)
new_esEs13(EQ, LT)
new_ltEs24(x0, x1, app(ty_Ratio, x2))
new_esEs9(x0, x1, ty_@0)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_pePe(True, x0)
new_ltEs19(x0, x1, ty_@0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_lt5(x0, x1, ty_Integer)
new_esEs40(x0, x1, ty_Float)
new_primCmpInt(Neg(Zero), Pos(Zero))
new_primCmpInt(Pos(Zero), Neg(Zero))
new_not(False)
new_esEs35(x0, x1, ty_Bool)
new_compare111(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs40(x0, x1, ty_@0)
new_lt20(x0, x1, ty_@0)
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs8(x0, x1, app(ty_Maybe, x2))
new_esEs24(Left(x0), Left(x1), ty_Bool, x2)
new_esEs34(x0, x1, ty_Int)
new_esEs7(x0, x1, ty_Double)
new_lt20(x0, x1, ty_Int)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_ltEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_primMulNat0(Zero, Succ(x0))
new_ltEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_esEs40(x0, x1, ty_Bool)
new_compare115(x0, x1, True, x2)
new_esEs40(x0, x1, app(ty_[], x2))
new_esEs38(x0, x1, app(app(ty_@2, x2), x3))
new_esEs36(x0, x1, ty_Ordering)
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_esEs4(x0, x1, ty_Integer)
new_esEs6(x0, x1, ty_Int)
new_esEs24(Right(x0), Right(x1), x2, ty_Char)
new_esEs38(x0, x1, ty_Float)
new_esEs37(x0, x1, ty_@0)
new_asAs(False, x0)
new_ltEs21(x0, x1, app(ty_Ratio, x2))
new_compare0(:(x0, x1), [], x2)
new_ltEs5(Left(x0), Left(x1), ty_Bool, x2)
new_esEs8(x0, x1, ty_Float)
new_compare111(x0, x1, x2, x3, False, x4, x5, x6)
new_esEs11(x0, x1, ty_Float)
new_esEs30(x0, x1, app(ty_[], x2))
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs6(x0, x1, app(ty_Ratio, x2))
new_esEs39(x0, x1, app(app(ty_Either, x2), x3))
new_esEs39(x0, x1, ty_@0)
new_compare6(Left(x0), Left(x1), x2, x3)
new_ltEs10(x0, x1)
new_esEs24(Left(x0), Left(x1), ty_Double, x2)
new_ltEs5(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare6(Right(x0), Left(x1), x2, x3)
new_compare6(Left(x0), Right(x1), x2, x3)
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_lt4(x0, x1, app(app(ty_@2, x2), x3))
new_lt4(x0, x1, ty_Integer)
new_esEs36(x0, x1, ty_Bool)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_esEs35(x0, x1, ty_Char)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_ltEs21(x0, x1, ty_Ordering)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs21(x0, x1, ty_Char)
new_esEs26(x0, x1, ty_@0)
new_esEs8(x0, x1, ty_Ordering)
new_lt23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs9(x0, x1, app(ty_[], x2))
new_compare5(x0, x1, ty_Float)
new_compare26(x0, x1, True, x2, x3)
new_esEs27(x0, x1, ty_Ordering)
new_lt17(x0, x1)
new_esEs4(x0, x1, app(ty_Maybe, x2))
new_esEs9(x0, x1, ty_Int)
new_esEs9(x0, x1, ty_Double)
new_esEs11(x0, x1, ty_Ordering)
new_ltEs24(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, ty_Float)
new_esEs21(Nothing, Just(x0), x1)
new_esEs27(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Integer)
new_esEs10(x0, x1, ty_@0)
new_esEs9(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Left(x0), Left(x1), ty_Ordering, x2)
new_esEs40(x0, x1, app(ty_Maybe, x2))
new_ltEs24(x0, x1, ty_@0)
new_lt4(x0, x1, ty_Ordering)
new_primCmpNat0(Succ(x0), Succ(x1))
new_esEs21(Just(x0), Just(x1), ty_Int)
new_esEs36(x0, x1, app(app(ty_@2, x2), x3))
new_lt23(x0, x1, ty_Float)
new_lt20(x0, x1, app(ty_[], x2))
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs26(x0, x1, ty_Char)
new_esEs31(x0, x1, ty_Int)
new_ltEs5(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs7(x0, x1, ty_@0)
new_esEs5(x0, x1, app(app(ty_Either, x2), x3))
new_lt22(x0, x1, ty_Integer)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_lt5(x0, x1, ty_Int)
new_primMulNat0(Succ(x0), Succ(x1))
new_ltEs5(Left(x0), Left(x1), ty_Int, x2)
new_lt14(x0, x1, x2, x3)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs4(Just(x0), Just(x1), ty_Integer)
new_esEs24(Left(x0), Left(x1), ty_Int, x2)
new_lt6(x0, x1, x2, x3)
new_compare28(x0, x1, x2, x3, False, x4, x5)
new_esEs30(x0, x1, ty_@0)
new_compare18(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs35(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Integer)
new_ltEs4(Nothing, Nothing, x0)
new_primCompAux00(x0, GT)
new_lt13(x0, x1)
new_esEs32(x0, x1, ty_@0)
new_esEs4(x0, x1, app(app(ty_@2, x2), x3))
new_lt21(x0, x1, ty_Int)
new_esEs4(x0, x1, app(app(ty_Either, x2), x3))
new_esEs31(x0, x1, ty_Char)
new_esEs27(x0, x1, ty_Float)
new_esEs38(x0, x1, ty_Double)
new_esEs29(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs38(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs5(Left(x0), Left(x1), ty_Char, x2)
new_compare9(False, False)
new_esEs38(x0, x1, app(ty_Ratio, x2))
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs32(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Left(x0), Left(x1), ty_@0, x2)
new_esEs30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare113(x0, x1, x2, x3, x4, x5, True, x6, x7, x8, x9)
new_esEs38(x0, x1, ty_Char)
new_esEs4(x0, x1, app(ty_[], x2))
new_esEs24(Right(x0), Right(x1), x2, ty_Float)
new_esEs35(x0, x1, ty_Ordering)
new_ltEs7(False, False)
new_ltEs11(GT, GT)
new_esEs21(Just(x0), Just(x1), ty_Float)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof
                                  ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

new_addToFM_C2(xuu16, xuu17, xuu18, xuu19, xuu20, xuu21, xuu22, xuu23, False, h, ba) → new_addToFM_C1(xuu16, xuu17, xuu18, xuu19, xuu20, xuu21, xuu22, xuu23, new_gt(xuu22, xuu17, h), h, ba)
new_addToFM_C(xuu3, Branch(xuu40, xuu41, xuu42, xuu43, xuu44), xuu500, xuu501, bd, be) → new_addToFM_C2(xuu3, xuu40, xuu41, xuu42, xuu43, xuu44, xuu500, xuu501, new_lt24(xuu500, xuu40, bd), bd, be)
new_addToFM_C2(xuu16, xuu17, xuu18, xuu19, xuu20, xuu21, xuu22, xuu23, True, h, ba) → new_addToFM_C(xuu16, xuu20, xuu22, xuu23, h, ba)
new_addToFM_C1(xuu35, xuu36, xuu37, xuu38, xuu39, xuu40, xuu41, xuu42, True, bb, bc) → new_addToFM_C(xuu35, xuu40, xuu41, xuu42, bb, bc)

The TRS R consists of the following rules:

new_esEs8(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs6(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs10(xuu5001, xuu401, ty_Integer) → new_esEs12(xuu5001, xuu401)
new_compare13(EQ, EQ) → EQ
new_esEs32(xuu111, xuu113, ty_Char) → new_esEs16(xuu111, xuu113)
new_lt21(xuu111, xuu113, ty_Bool) → new_lt9(xuu111, xuu113)
new_compare113(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, False, xuu190, bhb, bhc, bhd) → new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, xuu190, bhb, bhc, bhd)
new_esEs5(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_esEs31(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_esEs37(xuu50000, xuu4000, app(app(app(ty_@3, ehd), ehe), ehf)) → new_esEs25(xuu50000, xuu4000, ehd, ehe, ehf)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Double) → new_ltEs9(xuu550, xuu560)
new_gt(xuu22, xuu17, ty_Ordering) → new_esEs41(new_compare13(xuu22, xuu17))
new_lt20(xuu550, xuu560, ty_Int) → new_lt10(xuu550, xuu560)
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(app(ty_@3, fdg), fdh), fea), gb) → new_esEs25(xuu50000, xuu4000, fdg, fdh, fea)
new_compare110(xuu141, xuu142, True, dd, de) → LT
new_esEs27(xuu96, xuu99, app(ty_Ratio, bfa)) → new_esEs18(xuu96, xuu99, bfa)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Int) → new_ltEs8(xuu550, xuu560)
new_ltEs19(xuu98, xuu101, ty_Integer) → new_ltEs15(xuu98, xuu101)
new_esEs11(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs11(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_compare8(Nothing, Just(xuu400), faa) → LT
new_compare5(xuu5000, xuu400, app(app(ty_Either, bg), bh)) → new_compare6(xuu5000, xuu400, bg, bh)
new_esEs29(xuu550, xuu560, app(ty_[], cgf)) → new_esEs22(xuu550, xuu560, cgf)
new_compare19(xuu168, xuu169, xuu170, xuu171, False, db, dc) → GT
new_compare9(True, False) → GT
new_esEs4(xuu5000, xuu400, app(ty_Ratio, ff)) → new_esEs18(xuu5000, xuu400, ff)
new_ltEs21(xuu112, xuu114, app(app(app(ty_@3, dec), ded), dee)) → new_ltEs17(xuu112, xuu114, dec, ded, dee)
new_esEs35(xuu551, xuu561, app(app(ty_Either, eea), eeb)) → new_esEs24(xuu551, xuu561, eea, eeb)
new_lt4(xuu97, xuu100, ty_Float) → new_lt12(xuu97, xuu100)
new_esEs9(xuu5002, xuu402, ty_@0) → new_esEs15(xuu5002, xuu402)
new_esEs32(xuu111, xuu113, app(app(ty_@2, dce), dcf)) → new_esEs14(xuu111, xuu113, dce, dcf)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Float) → new_ltEs10(xuu550, xuu560)
new_esEs27(xuu96, xuu99, ty_Bool) → new_esEs20(xuu96, xuu99)
new_esEs27(xuu96, xuu99, ty_Integer) → new_esEs12(xuu96, xuu99)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Double) → new_esEs19(xuu50000, xuu4000)
new_esEs38(xuu50002, xuu4002, app(ty_[], ffh)) → new_esEs22(xuu50002, xuu4002, ffh)
new_compare5(xuu5000, xuu400, ty_Bool) → new_compare9(xuu5000, xuu400)
new_ltEs21(xuu112, xuu114, ty_Float) → new_ltEs10(xuu112, xuu114)
new_ltEs22(xuu552, xuu562, app(ty_Maybe, eda)) → new_ltEs4(xuu552, xuu562, eda)
new_lt14(xuu500, xuu40, dhe, dhf) → new_esEs28(new_compare14(xuu500, xuu40, dhe, dhf))
new_lt24(xuu500, xuu40, app(app(ty_Either, fa), fb)) → new_lt6(xuu500, xuu40, fa, fb)
new_lt5(xuu96, xuu99, ty_Integer) → new_lt17(xuu96, xuu99)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Double, gb) → new_esEs19(xuu50000, xuu4000)
new_ltEs20(xuu551, xuu561, app(app(ty_@2, cfb), cfc)) → new_ltEs12(xuu551, xuu561, cfb, cfc)
new_compare0(:(xuu5000, xuu5001), :(xuu400, xuu401), bf) → new_primCompAux0(xuu5000, xuu400, new_compare0(xuu5001, xuu401, bf), bf)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_esEs7(xuu5001, xuu401, app(ty_[], eac)) → new_esEs22(xuu5001, xuu401, eac)
new_gt(xuu22, xuu17, app(ty_[], bgb)) → new_esEs41(new_compare0(xuu22, xuu17, bgb))
new_gt(xuu22, xuu17, app(app(app(ty_@3, bgd), bge), bgf)) → new_esEs41(new_compare18(xuu22, xuu17, bgd, bge, bgf))
new_ltEs24(xuu55, xuu56, app(app(ty_@2, cee), cef)) → new_ltEs12(xuu55, xuu56, cee, cef)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(app(ty_Either, dgc), dgd)) → new_ltEs5(xuu550, xuu560, dgc, dgd)
new_lt20(xuu550, xuu560, ty_Float) → new_lt12(xuu550, xuu560)
new_esEs27(xuu96, xuu99, app(ty_[], beh)) → new_esEs22(xuu96, xuu99, beh)
new_esEs37(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs26(xuu97, xuu100, app(ty_Maybe, bdc)) → new_esEs21(xuu97, xuu100, bdc)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Float, dfa) → new_ltEs10(xuu550, xuu560)
new_ltEs20(xuu551, xuu561, ty_Double) → new_ltEs9(xuu551, xuu561)
new_lt23(xuu550, xuu560, ty_Bool) → new_lt9(xuu550, xuu560)
new_lt21(xuu111, xuu113, ty_Char) → new_lt7(xuu111, xuu113)
new_esEs10(xuu5001, xuu401, ty_Bool) → new_esEs20(xuu5001, xuu401)
new_ltEs5(Right(xuu550), Left(xuu560), dgb, dfa) → False
new_ltEs19(xuu98, xuu101, ty_Char) → new_ltEs6(xuu98, xuu101)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_compare6(Left(xuu5000), Right(xuu400), fa, fb) → LT
new_lt23(xuu550, xuu560, app(app(app(ty_@3, egb), egc), egd)) → new_lt19(xuu550, xuu560, egb, egc, egd)
new_ltEs7(True, False) → False
new_pePe(False, xuu201) → xuu201
new_esEs33(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_esEs13(EQ, LT) → False
new_esEs13(LT, EQ) → False
new_lt23(xuu550, xuu560, app(app(ty_Either, efc), efd)) → new_lt6(xuu550, xuu560, efc, efd)
new_esEs39(xuu50001, xuu4001, app(ty_Maybe, fha)) → new_esEs21(xuu50001, xuu4001, fha)
new_esEs26(xuu97, xuu100, ty_Bool) → new_esEs20(xuu97, xuu100)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_lt21(xuu111, xuu113, app(ty_Ratio, dch)) → new_lt18(xuu111, xuu113, dch)
new_lt5(xuu96, xuu99, app(ty_[], beh)) → new_lt16(xuu96, xuu99, beh)
new_ltEs20(xuu551, xuu561, app(ty_Ratio, cfe)) → new_ltEs16(xuu551, xuu561, cfe)
new_ltEs4(Nothing, Just(xuu560), df) → True
new_gt(xuu22, xuu17, ty_Double) → new_esEs41(new_compare11(xuu22, xuu17))
new_lt4(xuu97, xuu100, app(ty_Maybe, bdc)) → new_lt8(xuu97, xuu100, bdc)
new_compare15(@0, @0) → EQ
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Ordering, gb) → new_esEs13(xuu50000, xuu4000)
new_ltEs24(xuu55, xuu56, app(ty_Maybe, df)) → new_ltEs4(xuu55, xuu56, df)
new_ltEs19(xuu98, xuu101, ty_Int) → new_ltEs8(xuu98, xuu101)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(app(app(ty_@3, dhb), dhc), dhd)) → new_ltEs17(xuu550, xuu560, dhb, dhc, dhd)
new_ltEs24(xuu55, xuu56, ty_Int) → new_ltEs8(xuu55, xuu56)
new_esEs7(xuu5001, xuu401, ty_Ordering) → new_esEs13(xuu5001, xuu401)
new_lt22(xuu551, xuu561, ty_Float) → new_lt12(xuu551, xuu561)
new_esEs9(xuu5002, xuu402, app(app(app(ty_@3, cad), cae), caf)) → new_esEs25(xuu5002, xuu402, cad, cae, caf)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Char, dfa) → new_ltEs6(xuu550, xuu560)
new_lt5(xuu96, xuu99, app(app(app(ty_@3, bfb), bfc), bfd)) → new_lt19(xuu96, xuu99, bfb, bfc, bfd)
new_lt11(xuu500, xuu40) → new_esEs28(new_compare11(xuu500, xuu40))
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_Maybe, cdf)) → new_esEs21(xuu50000, xuu4000, cdf)
new_esEs10(xuu5001, xuu401, app(app(ty_@2, cag), cah)) → new_esEs14(xuu5001, xuu401, cag, cah)
new_esEs21(Nothing, Nothing, fg) → True
new_lt21(xuu111, xuu113, ty_Double) → new_lt11(xuu111, xuu113)
new_esEs27(xuu96, xuu99, ty_Ordering) → new_esEs13(xuu96, xuu99)
new_pePe(True, xuu201) → True
new_compare0([], [], bf) → EQ
new_esEs38(xuu50002, xuu4002, ty_Char) → new_esEs16(xuu50002, xuu4002)
new_primEqNat0(Zero, Zero) → True
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_Ratio, dff), dfa) → new_ltEs16(xuu550, xuu560, dff)
new_ltEs14(xuu55, xuu56, chc) → new_fsEs(new_compare0(xuu55, xuu56, chc))
new_esEs33(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_esEs32(xuu111, xuu113, app(ty_[], dcg)) → new_esEs22(xuu111, xuu113, dcg)
new_esEs29(xuu550, xuu560, ty_Ordering) → new_esEs13(xuu550, xuu560)
new_esEs13(GT, LT) → False
new_esEs13(LT, GT) → False
new_compare6(Right(xuu5000), Right(xuu400), fa, fb) → new_compare26(xuu5000, xuu400, new_esEs5(xuu5000, xuu400, fb), fa, fb)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(app(ty_@2, dgf), dgg)) → new_ltEs12(xuu550, xuu560, dgf, dgg)
new_esEs27(xuu96, xuu99, ty_Float) → new_esEs23(xuu96, xuu99)
new_esEs7(xuu5001, xuu401, ty_Bool) → new_esEs20(xuu5001, xuu401)
new_esEs39(xuu50001, xuu4001, ty_Ordering) → new_esEs13(xuu50001, xuu4001)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_compare110(xuu141, xuu142, False, dd, de) → GT
new_esEs11(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs37(xuu50000, xuu4000, app(ty_Maybe, egh)) → new_esEs21(xuu50000, xuu4000, egh)
new_compare5(xuu5000, xuu400, ty_Char) → new_compare7(xuu5000, xuu400)
new_gt(xuu22, xuu17, app(app(ty_@2, bfh), bga)) → new_esEs41(new_compare14(xuu22, xuu17, bfh, bga))
new_esEs7(xuu5001, xuu401, app(ty_Maybe, eab)) → new_esEs21(xuu5001, xuu401, eab)
new_esEs5(xuu5000, xuu400, app(app(ty_@2, gf), gg)) → new_esEs14(xuu5000, xuu400, gf, gg)
new_esEs30(xuu50001, xuu4001, app(ty_[], chh)) → new_esEs22(xuu50001, xuu4001, chh)
new_esEs29(xuu550, xuu560, ty_Bool) → new_esEs20(xuu550, xuu560)
new_lt24(xuu500, xuu40, ty_Int) → new_lt10(xuu500, xuu40)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(ty_@2, eb), ec)) → new_ltEs12(xuu550, xuu560, eb, ec)
new_lt22(xuu551, xuu561, app(ty_Maybe, eec)) → new_lt8(xuu551, xuu561, eec)
new_ltEs22(xuu552, xuu562, ty_Double) → new_ltEs9(xuu552, xuu562)
new_ltEs18(xuu62, xuu63, app(app(ty_Either, bab), bac)) → new_ltEs5(xuu62, xuu63, bab, bac)
new_lt23(xuu550, xuu560, app(ty_Ratio, ega)) → new_lt18(xuu550, xuu560, ega)
new_lt4(xuu97, xuu100, app(app(app(ty_@3, bdh), bea), beb)) → new_lt19(xuu97, xuu100, bdh, bea, beb)
new_primEqInt(Neg(Succ(xuu500000)), Neg(Succ(xuu40000))) → new_primEqNat0(xuu500000, xuu40000)
new_compare17(:%(xuu5000, xuu5001), :%(xuu400, xuu401), ty_Int) → new_compare10(new_sr(xuu5000, xuu401), new_sr(xuu400, xuu5001))
new_ltEs21(xuu112, xuu114, app(ty_Ratio, deb)) → new_ltEs16(xuu112, xuu114, deb)
new_esEs35(xuu551, xuu561, ty_Double) → new_esEs19(xuu551, xuu561)
new_ltEs21(xuu112, xuu114, ty_Int) → new_ltEs8(xuu112, xuu114)
new_esEs6(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs29(xuu550, xuu560, app(app(ty_@2, cgd), cge)) → new_esEs14(xuu550, xuu560, cgd, cge)
new_esEs39(xuu50001, xuu4001, app(ty_[], fhb)) → new_esEs22(xuu50001, xuu4001, fhb)
new_esEs38(xuu50002, xuu4002, ty_Bool) → new_esEs20(xuu50002, xuu4002)
new_esEs5(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_esEs10(xuu5001, xuu401, app(ty_Maybe, cbb)) → new_esEs21(xuu5001, xuu401, cbb)
new_primEqInt(Neg(Zero), Neg(Zero)) → True
new_gt0(xuu22, xuu17) → new_esEs41(new_compare10(xuu22, xuu17))
new_compare13(LT, LT) → EQ
new_esEs39(xuu50001, xuu4001, ty_Char) → new_esEs16(xuu50001, xuu4001)
new_ltEs21(xuu112, xuu114, app(ty_[], dea)) → new_ltEs14(xuu112, xuu114, dea)
new_compare9(False, False) → EQ
new_compare26(xuu62, xuu63, True, hh, baa) → EQ
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(app(ty_Either, feg), feh)) → new_esEs24(xuu50000, xuu4000, feg, feh)
new_esEs31(xuu50000, xuu4000, app(ty_Ratio, dah)) → new_esEs18(xuu50000, xuu4000, dah)
new_esEs10(xuu5001, xuu401, ty_Ordering) → new_esEs13(xuu5001, xuu401)
new_lt20(xuu550, xuu560, ty_Ordering) → new_lt13(xuu550, xuu560)
new_lt4(xuu97, xuu100, ty_Int) → new_lt10(xuu97, xuu100)
new_compare19(xuu168, xuu169, xuu170, xuu171, True, db, dc) → LT
new_esEs40(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_compare13(GT, EQ) → GT
new_primCmpInt(Neg(Zero), Pos(Zero)) → EQ
new_primCmpInt(Pos(Zero), Neg(Zero)) → EQ
new_esEs4(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(ty_Either, cdh), cea)) → new_esEs24(xuu50000, xuu4000, cdh, cea)
new_esEs31(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_compare17(:%(xuu5000, xuu5001), :%(xuu400, xuu401), ty_Integer) → new_compare16(new_sr0(xuu5000, xuu401), new_sr0(xuu400, xuu5001))
new_ltEs23(xuu69, xuu70, app(ty_Maybe, fbg)) → new_ltEs4(xuu69, xuu70, fbg)
new_primEqInt(Pos(Succ(xuu500000)), Pos(Succ(xuu40000))) → new_primEqNat0(xuu500000, xuu40000)
new_ltEs24(xuu55, xuu56, ty_@0) → new_ltEs13(xuu55, xuu56)
new_esEs39(xuu50001, xuu4001, app(ty_Ratio, fgh)) → new_esEs18(xuu50001, xuu4001, fgh)
new_esEs11(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_compare6(Left(xuu5000), Left(xuu400), fa, fb) → new_compare25(xuu5000, xuu400, new_esEs4(xuu5000, xuu400, fa), fa, fb)
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_[], cdg)) → new_esEs22(xuu50000, xuu4000, cdg)
new_ltEs16(xuu55, xuu56, def) → new_fsEs(new_compare17(xuu55, xuu56, def))
new_esEs40(xuu50000, xuu4000, app(ty_Ratio, gab)) → new_esEs18(xuu50000, xuu4000, gab)
new_lt22(xuu551, xuu561, app(app(ty_@2, eed), eee)) → new_lt14(xuu551, xuu561, eed, eee)
new_lt24(xuu500, xuu40, ty_@0) → new_lt15(xuu500, xuu40)
new_primEqNat0(Succ(xuu500000), Succ(xuu40000)) → new_primEqNat0(xuu500000, xuu40000)
new_lt15(xuu500, xuu40) → new_esEs28(new_compare15(xuu500, xuu40))
new_ltEs22(xuu552, xuu562, ty_Char) → new_ltEs6(xuu552, xuu562)
new_lt20(xuu550, xuu560, ty_Integer) → new_lt17(xuu550, xuu560)
new_ltEs18(xuu62, xuu63, app(ty_[], bag)) → new_ltEs14(xuu62, xuu63, bag)
new_primCmpInt(Neg(Succ(xuu50000)), Neg(xuu400)) → new_primCmpNat0(xuu400, Succ(xuu50000))
new_esEs40(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_lt21(xuu111, xuu113, ty_Integer) → new_lt17(xuu111, xuu113)
new_ltEs24(xuu55, xuu56, app(app(ty_Either, dgb), dfa)) → new_ltEs5(xuu55, xuu56, dgb, dfa)
new_esEs40(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs30(xuu50001, xuu4001, ty_Ordering) → new_esEs13(xuu50001, xuu4001)
new_ltEs23(xuu69, xuu70, ty_Float) → new_ltEs10(xuu69, xuu70)
new_esEs27(xuu96, xuu99, app(app(ty_Either, bec), bed)) → new_esEs24(xuu96, xuu99, bec, bed)
new_esEs38(xuu50002, xuu4002, ty_@0) → new_esEs15(xuu50002, xuu4002)
new_lt24(xuu500, xuu40, ty_Ordering) → new_lt13(xuu500, xuu40)
new_compare5(xuu5000, xuu400, app(app(ty_@2, cb), cc)) → new_compare14(xuu5000, xuu400, cb, cc)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Int) → new_esEs17(xuu50000, xuu4000)
new_ltEs19(xuu98, xuu101, app(app(ty_@2, bcb), bcc)) → new_ltEs12(xuu98, xuu101, bcb, bcc)
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_Maybe, fdc), gb) → new_esEs21(xuu50000, xuu4000, fdc)
new_ltEs20(xuu551, xuu561, app(ty_[], cfd)) → new_ltEs14(xuu551, xuu561, cfd)
new_esEs36(xuu550, xuu560, ty_Ordering) → new_esEs13(xuu550, xuu560)
new_ltEs4(Just(xuu550), Just(xuu560), ty_@0) → new_ltEs13(xuu550, xuu560)
new_lt5(xuu96, xuu99, app(ty_Ratio, bfa)) → new_lt18(xuu96, xuu99, bfa)
new_esEs32(xuu111, xuu113, app(ty_Maybe, dcd)) → new_esEs21(xuu111, xuu113, dcd)
new_lt5(xuu96, xuu99, ty_Bool) → new_lt9(xuu96, xuu99)
new_esEs30(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_ltEs11(GT, LT) → False
new_primEqInt(Pos(Zero), Neg(Succ(xuu40000))) → False
new_primEqInt(Neg(Zero), Pos(Succ(xuu40000))) → False
new_esEs30(xuu50001, xuu4001, app(ty_Maybe, chg)) → new_esEs21(xuu50001, xuu4001, chg)
new_primCompAux00(xuu86, EQ) → xuu86
new_primCmpInt(Pos(Zero), Pos(Succ(xuu4000))) → new_primCmpNat0(Zero, Succ(xuu4000))
new_esEs6(xuu5000, xuu400, app(ty_Maybe, fae)) → new_esEs21(xuu5000, xuu400, fae)
new_gt(xuu22, xuu17, app(ty_Ratio, bgc)) → new_esEs41(new_compare17(xuu22, xuu17, bgc))
new_ltEs12(@2(xuu550, xuu551), @2(xuu560, xuu561), cee, cef) → new_pePe(new_lt20(xuu550, xuu560, cee), new_asAs(new_esEs29(xuu550, xuu560, cee), new_ltEs20(xuu551, xuu561, cef)))
new_lt22(xuu551, xuu561, ty_Char) → new_lt7(xuu551, xuu561)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Char) → new_ltEs6(xuu550, xuu560)
new_esEs10(xuu5001, xuu401, ty_Double) → new_esEs19(xuu5001, xuu401)
new_lt17(xuu500, xuu40) → new_esEs28(new_compare16(xuu500, xuu40))
new_esEs7(xuu5001, xuu401, ty_Double) → new_esEs19(xuu5001, xuu401)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(ty_[], fef)) → new_esEs22(xuu50000, xuu4000, fef)
new_esEs38(xuu50002, xuu4002, ty_Double) → new_esEs19(xuu50002, xuu4002)
new_esEs11(xuu5000, xuu400, app(ty_Ratio, ccc)) → new_esEs18(xuu5000, xuu400, ccc)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_ltEs11(LT, LT) → True
new_esEs6(xuu5000, xuu400, app(app(ty_Either, fag), fah)) → new_esEs24(xuu5000, xuu400, fag, fah)
new_esEs5(xuu5000, xuu400, app(ty_Ratio, gh)) → new_esEs18(xuu5000, xuu400, gh)
new_not(False) → True
new_ltEs22(xuu552, xuu562, ty_Integer) → new_ltEs15(xuu552, xuu562)
new_compare16(Integer(xuu5000), Integer(xuu400)) → new_primCmpInt(xuu5000, xuu400)
new_esEs29(xuu550, xuu560, ty_Integer) → new_esEs12(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, app(ty_[], eha)) → new_esEs22(xuu50000, xuu4000, eha)
new_esEs7(xuu5001, xuu401, ty_Char) → new_esEs16(xuu5001, xuu401)
new_esEs26(xuu97, xuu100, app(ty_Ratio, bdg)) → new_esEs18(xuu97, xuu100, bdg)
new_esEs19(Double(xuu50000, xuu50001), Double(xuu4000, xuu4001)) → new_esEs17(new_sr(xuu50000, xuu4000), new_sr(xuu50001, xuu4001))
new_esEs24(Right(xuu50000), Left(xuu4000), ga, gb) → False
new_esEs24(Left(xuu50000), Right(xuu4000), ga, gb) → False
new_lt20(xuu550, xuu560, app(app(ty_Either, cga), cgb)) → new_lt6(xuu550, xuu560, cga, cgb)
new_esEs30(xuu50001, xuu4001, app(app(ty_@2, chd), che)) → new_esEs14(xuu50001, xuu4001, chd, che)
new_lt5(xuu96, xuu99, app(app(ty_@2, bef), beg)) → new_lt14(xuu96, xuu99, bef, beg)
new_compare0(:(xuu5000, xuu5001), [], bf) → GT
new_ltEs5(Left(xuu550), Left(xuu560), app(app(app(ty_@3, dfg), dfh), dga), dfa) → new_ltEs17(xuu550, xuu560, dfg, dfh, dga)
new_ltEs22(xuu552, xuu562, app(ty_Ratio, ede)) → new_ltEs16(xuu552, xuu562, ede)
new_lt24(xuu500, xuu40, app(app(ty_@2, dhe), dhf)) → new_lt14(xuu500, xuu40, dhe, dhf)
new_lt24(xuu500, xuu40, app(ty_Maybe, faa)) → new_lt8(xuu500, xuu40, faa)
new_ltEs22(xuu552, xuu562, app(app(ty_Either, ecg), ech)) → new_ltEs5(xuu552, xuu562, ecg, ech)
new_esEs30(xuu50001, xuu4001, app(app(ty_Either, daa), dab)) → new_esEs24(xuu50001, xuu4001, daa, dab)
new_ltEs22(xuu552, xuu562, app(ty_[], edd)) → new_ltEs14(xuu552, xuu562, edd)
new_ltEs18(xuu62, xuu63, ty_Ordering) → new_ltEs11(xuu62, xuu63)
new_esEs4(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_ltEs24(xuu55, xuu56, ty_Ordering) → new_ltEs11(xuu55, xuu56)
new_lt5(xuu96, xuu99, ty_@0) → new_lt15(xuu96, xuu99)
new_ltEs22(xuu552, xuu562, ty_Int) → new_ltEs8(xuu552, xuu562)
new_esEs6(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_esEs9(xuu5002, xuu402, app(ty_Ratio, bhg)) → new_esEs18(xuu5002, xuu402, bhg)
new_esEs6(xuu5000, xuu400, app(ty_Ratio, fad)) → new_esEs18(xuu5000, xuu400, fad)
new_ltEs21(xuu112, xuu114, app(ty_Maybe, ddf)) → new_ltEs4(xuu112, xuu114, ddf)
new_lt21(xuu111, xuu113, ty_Int) → new_lt10(xuu111, xuu113)
new_primMulInt(Neg(xuu50000), Neg(xuu4000)) → Pos(new_primMulNat0(xuu50000, xuu4000))
new_esEs13(GT, GT) → True
new_esEs6(xuu5000, xuu400, app(ty_[], faf)) → new_esEs22(xuu5000, xuu400, faf)
new_primEqNat0(Zero, Succ(xuu40000)) → False
new_primEqNat0(Succ(xuu500000), Zero) → False
new_compare8(Just(xuu5000), Nothing, faa) → GT
new_compare25(xuu55, xuu56, True, gbb, gbc) → EQ
new_esEs7(xuu5001, xuu401, ty_@0) → new_esEs15(xuu5001, xuu401)
new_esEs8(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_compare8(Just(xuu5000), Just(xuu400), faa) → new_compare29(xuu5000, xuu400, new_esEs6(xuu5000, xuu400, faa), faa)
new_ltEs18(xuu62, xuu63, app(app(app(ty_@3, bba), bbb), bbc)) → new_ltEs17(xuu62, xuu63, bba, bbb, bbc)
new_esEs30(xuu50001, xuu4001, app(app(app(ty_@3, dac), dad), dae)) → new_esEs25(xuu50001, xuu4001, dac, dad, dae)
new_esEs37(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_lt9(xuu500, xuu40) → new_esEs28(new_compare9(xuu500, xuu40))
new_ltEs21(xuu112, xuu114, ty_Bool) → new_ltEs7(xuu112, xuu114)
new_esEs35(xuu551, xuu561, ty_Integer) → new_esEs12(xuu551, xuu561)
new_esEs32(xuu111, xuu113, ty_Bool) → new_esEs20(xuu111, xuu113)
new_ltEs19(xuu98, xuu101, ty_Ordering) → new_ltEs11(xuu98, xuu101)
new_esEs5(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_compare13(LT, GT) → LT
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(ty_[], dgh)) → new_ltEs14(xuu550, xuu560, dgh)
new_esEs27(xuu96, xuu99, ty_Int) → new_esEs17(xuu96, xuu99)
new_esEs26(xuu97, xuu100, app(app(app(ty_@3, bdh), bea), beb)) → new_esEs25(xuu97, xuu100, bdh, bea, beb)
new_esEs9(xuu5002, xuu402, ty_Integer) → new_esEs12(xuu5002, xuu402)
new_lt23(xuu550, xuu560, ty_Double) → new_lt11(xuu550, xuu560)
new_esEs35(xuu551, xuu561, ty_Char) → new_esEs16(xuu551, xuu561)
new_esEs38(xuu50002, xuu4002, app(app(app(ty_@3, fgc), fgd), fge)) → new_esEs25(xuu50002, xuu4002, fgc, fgd, fge)
new_ltEs19(xuu98, xuu101, ty_Bool) → new_ltEs7(xuu98, xuu101)
new_esEs29(xuu550, xuu560, app(app(ty_Either, cga), cgb)) → new_esEs24(xuu550, xuu560, cga, cgb)
new_lt23(xuu550, xuu560, app(ty_[], efh)) → new_lt16(xuu550, xuu560, efh)
new_lt22(xuu551, xuu561, app(app(app(ty_@3, eeh), efa), efb)) → new_lt19(xuu551, xuu561, eeh, efa, efb)
new_esEs35(xuu551, xuu561, ty_@0) → new_esEs15(xuu551, xuu561)
new_primCmpInt(Pos(Zero), Neg(Succ(xuu4000))) → GT
new_ltEs24(xuu55, xuu56, app(ty_Ratio, def)) → new_ltEs16(xuu55, xuu56, def)
new_esEs20(False, True) → False
new_esEs20(True, False) → False
new_ltEs20(xuu551, xuu561, ty_Ordering) → new_ltEs11(xuu551, xuu561)
new_compare5(xuu5000, xuu400, ty_Float) → new_compare12(xuu5000, xuu400)
new_esEs22(:(xuu50000, xuu50001), :(xuu4000, xuu4001), fh) → new_asAs(new_esEs37(xuu50000, xuu4000, fh), new_esEs22(xuu50001, xuu4001, fh))
new_esEs10(xuu5001, xuu401, app(ty_[], cbc)) → new_esEs22(xuu5001, xuu401, cbc)
new_lt23(xuu550, xuu560, ty_Int) → new_lt10(xuu550, xuu560)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Float, gb) → new_esEs23(xuu50000, xuu4000)
new_ltEs11(EQ, EQ) → True
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_Maybe, ea)) → new_ltEs4(xuu550, xuu560, ea)
new_lt4(xuu97, xuu100, ty_Ordering) → new_lt13(xuu97, xuu100)
new_esEs40(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_primCmpInt(Neg(Zero), Neg(Zero)) → EQ
new_esEs6(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_lt21(xuu111, xuu113, app(app(ty_Either, dcb), dcc)) → new_lt6(xuu111, xuu113, dcb, dcc)
new_ltEs17(@3(xuu550, xuu551, xuu552), @3(xuu560, xuu561, xuu562), ecd, ece, ecf) → new_pePe(new_lt23(xuu550, xuu560, ecd), new_asAs(new_esEs36(xuu550, xuu560, ecd), new_pePe(new_lt22(xuu551, xuu561, ece), new_asAs(new_esEs35(xuu551, xuu561, ece), new_ltEs22(xuu552, xuu562, ecf)))))
new_ltEs20(xuu551, xuu561, ty_Bool) → new_ltEs7(xuu551, xuu561)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Bool) → new_ltEs7(xuu550, xuu560)
new_compare111(xuu168, xuu169, xuu170, xuu171, True, xuu173, db, dc) → new_compare19(xuu168, xuu169, xuu170, xuu171, True, db, dc)
new_lt19(xuu500, xuu40, bgg, bgh, bha) → new_esEs28(new_compare18(xuu500, xuu40, bgg, bgh, bha))
new_compare28(xuu111, xuu112, xuu113, xuu114, True, dbh, dca) → EQ
new_asAs(False, xuu129) → False
new_primMulInt(Pos(xuu50000), Neg(xuu4000)) → Neg(new_primMulNat0(xuu50000, xuu4000))
new_primMulInt(Neg(xuu50000), Pos(xuu4000)) → Neg(new_primMulNat0(xuu50000, xuu4000))
new_esEs36(xuu550, xuu560, app(ty_Maybe, efe)) → new_esEs21(xuu550, xuu560, efe)
new_esEs35(xuu551, xuu561, ty_Int) → new_esEs17(xuu551, xuu561)
new_ltEs18(xuu62, xuu63, ty_Char) → new_ltEs6(xuu62, xuu63)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(ty_Either, dg), dh)) → new_ltEs5(xuu550, xuu560, dg, dh)
new_fsEs(xuu196) → new_not(new_esEs13(xuu196, GT))
new_esEs21(Nothing, Just(xuu4000), fg) → False
new_esEs21(Just(xuu50000), Nothing, fg) → False
new_esEs9(xuu5002, xuu402, ty_Bool) → new_esEs20(xuu5002, xuu402)
new_lt23(xuu550, xuu560, app(app(ty_@2, eff), efg)) → new_lt14(xuu550, xuu560, eff, efg)
new_esEs39(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_lt21(xuu111, xuu113, ty_Ordering) → new_lt13(xuu111, xuu113)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Double, dfa) → new_ltEs9(xuu550, xuu560)
new_esEs10(xuu5001, xuu401, app(ty_Ratio, cba)) → new_esEs18(xuu5001, xuu401, cba)
new_esEs34(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_lt22(xuu551, xuu561, ty_@0) → new_lt15(xuu551, xuu561)
new_esEs35(xuu551, xuu561, app(ty_[], eef)) → new_esEs22(xuu551, xuu561, eef)
new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, bhb, bhc, bhd) → LT
new_esEs36(xuu550, xuu560, app(app(ty_@2, eff), efg)) → new_esEs14(xuu550, xuu560, eff, efg)
new_lt20(xuu550, xuu560, app(ty_Ratio, cgg)) → new_lt18(xuu550, xuu560, cgg)
new_esEs8(xuu5000, xuu400, app(ty_Ratio, ebc)) → new_esEs18(xuu5000, xuu400, ebc)
new_lt5(xuu96, xuu99, ty_Double) → new_lt11(xuu96, xuu99)
new_esEs31(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(app(ty_@3, ceb), cec), ced)) → new_esEs25(xuu50000, xuu4000, ceb, cec, ced)
new_esEs28(LT) → True
new_esEs4(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_gt(xuu22, xuu17, ty_Integer) → new_esEs41(new_compare16(xuu22, xuu17))
new_ltEs23(xuu69, xuu70, app(app(ty_@2, fbh), fca)) → new_ltEs12(xuu69, xuu70, fbh, fca)
new_esEs23(Float(xuu50000, xuu50001), Float(xuu4000, xuu4001)) → new_esEs17(new_sr(xuu50000, xuu4000), new_sr(xuu50001, xuu4001))
new_esEs11(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_ltEs20(xuu551, xuu561, ty_Float) → new_ltEs10(xuu551, xuu561)
new_esEs38(xuu50002, xuu4002, ty_Int) → new_esEs17(xuu50002, xuu4002)
new_compare5(xuu5000, xuu400, ty_Double) → new_compare11(xuu5000, xuu400)
new_esEs41(GT) → True
new_esEs9(xuu5002, xuu402, app(ty_Maybe, bhh)) → new_esEs21(xuu5002, xuu402, bhh)
new_esEs32(xuu111, xuu113, ty_Int) → new_esEs17(xuu111, xuu113)
new_esEs40(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_compare13(EQ, LT) → GT
new_esEs4(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs31(xuu50000, xuu4000, app(app(ty_@2, daf), dag)) → new_esEs14(xuu50000, xuu4000, daf, dag)
new_esEs8(xuu5000, xuu400, app(app(ty_@2, eba), ebb)) → new_esEs14(xuu5000, xuu400, eba, ebb)
new_lt23(xuu550, xuu560, app(ty_Maybe, efe)) → new_lt8(xuu550, xuu560, efe)
new_ltEs23(xuu69, xuu70, app(ty_Ratio, fcc)) → new_ltEs16(xuu69, xuu70, fcc)
new_compare9(True, True) → EQ
new_compare113(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, xuu190, bhb, bhc, bhd) → new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, True, bhb, bhc, bhd)
new_esEs32(xuu111, xuu113, app(ty_Ratio, dch)) → new_esEs18(xuu111, xuu113, dch)
new_esEs29(xuu550, xuu560, ty_Char) → new_esEs16(xuu550, xuu560)
new_esEs18(:%(xuu50000, xuu50001), :%(xuu4000, xuu4001), ff) → new_asAs(new_esEs34(xuu50000, xuu4000, ff), new_esEs33(xuu50001, xuu4001, ff))
new_lt24(xuu500, xuu40, ty_Char) → new_lt7(xuu500, xuu40)
new_esEs36(xuu550, xuu560, ty_Int) → new_esEs17(xuu550, xuu560)
new_esEs38(xuu50002, xuu4002, app(ty_Maybe, ffg)) → new_esEs21(xuu50002, xuu4002, ffg)
new_esEs5(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_compare0([], :(xuu400, xuu401), bf) → LT
new_esEs37(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_asAs(True, xuu129) → xuu129
new_lt23(xuu550, xuu560, ty_Integer) → new_lt17(xuu550, xuu560)
new_compare112(xuu148, xuu149, True, ehg, ehh) → LT
new_lt24(xuu500, xuu40, app(ty_Ratio, fcg)) → new_lt18(xuu500, xuu40, fcg)
new_esEs32(xuu111, xuu113, ty_Double) → new_esEs19(xuu111, xuu113)
new_ltEs24(xuu55, xuu56, ty_Bool) → new_ltEs7(xuu55, xuu56)
new_ltEs18(xuu62, xuu63, ty_Bool) → new_ltEs7(xuu62, xuu63)
new_compare6(Right(xuu5000), Left(xuu400), fa, fb) → GT
new_lt12(xuu500, xuu40) → new_esEs28(new_compare12(xuu500, xuu40))
new_ltEs6(xuu55, xuu56) → new_fsEs(new_compare7(xuu55, xuu56))
new_esEs30(xuu50001, xuu4001, ty_Bool) → new_esEs20(xuu50001, xuu4001)
new_ltEs23(xuu69, xuu70, ty_@0) → new_ltEs13(xuu69, xuu70)
new_esEs26(xuu97, xuu100, ty_Char) → new_esEs16(xuu97, xuu100)
new_ltEs18(xuu62, xuu63, ty_Integer) → new_ltEs15(xuu62, xuu63)
new_esEs11(xuu5000, xuu400, app(app(app(ty_@3, cch), cda), cdb)) → new_esEs25(xuu5000, xuu400, cch, cda, cdb)
new_ltEs20(xuu551, xuu561, ty_Int) → new_ltEs8(xuu551, xuu561)
new_lt5(xuu96, xuu99, ty_Int) → new_lt10(xuu96, xuu99)
new_esEs29(xuu550, xuu560, app(app(app(ty_@3, cgh), cha), chb)) → new_esEs25(xuu550, xuu560, cgh, cha, chb)
new_esEs10(xuu5001, xuu401, ty_Char) → new_esEs16(xuu5001, xuu401)
new_esEs40(xuu50000, xuu4000, app(app(ty_Either, gae), gaf)) → new_esEs24(xuu50000, xuu4000, gae, gaf)
new_esEs7(xuu5001, xuu401, app(ty_Ratio, eaa)) → new_esEs18(xuu5001, xuu401, eaa)
new_esEs8(xuu5000, xuu400, ty_Double) → new_esEs19(xuu5000, xuu400)
new_esEs10(xuu5001, xuu401, ty_@0) → new_esEs15(xuu5001, xuu401)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_esEs36(xuu550, xuu560, ty_Double) → new_esEs19(xuu550, xuu560)
new_esEs39(xuu50001, xuu4001, app(app(app(ty_@3, fhe), fhf), fhg)) → new_esEs25(xuu50001, xuu4001, fhe, fhf, fhg)
new_esEs26(xuu97, xuu100, ty_Ordering) → new_esEs13(xuu97, xuu100)
new_ltEs22(xuu552, xuu562, ty_Float) → new_ltEs10(xuu552, xuu562)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Bool, dfa) → new_ltEs7(xuu550, xuu560)
new_ltEs22(xuu552, xuu562, ty_Bool) → new_ltEs7(xuu552, xuu562)
new_primEqInt(Pos(Zero), Neg(Zero)) → True
new_primEqInt(Neg(Zero), Pos(Zero)) → True
new_esEs5(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs30(xuu50001, xuu4001, ty_Float) → new_esEs23(xuu50001, xuu4001)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(app(app(ty_@3, ffa), ffb), ffc)) → new_esEs25(xuu50000, xuu4000, ffa, ffb, ffc)
new_esEs35(xuu551, xuu561, app(ty_Ratio, eeg)) → new_esEs18(xuu551, xuu561, eeg)
new_not(True) → False
new_ltEs24(xuu55, xuu56, app(ty_[], chc)) → new_ltEs14(xuu55, xuu56, chc)
new_compare5(xuu5000, xuu400, app(ty_[], cd)) → new_compare0(xuu5000, xuu400, cd)
new_esEs27(xuu96, xuu99, ty_Double) → new_esEs19(xuu96, xuu99)
new_esEs26(xuu97, xuu100, ty_@0) → new_esEs15(xuu97, xuu100)
new_ltEs10(xuu55, xuu56) → new_fsEs(new_compare12(xuu55, xuu56))
new_ltEs22(xuu552, xuu562, app(app(ty_@2, edb), edc)) → new_ltEs12(xuu552, xuu562, edb, edc)
new_lt21(xuu111, xuu113, app(ty_Maybe, dcd)) → new_lt8(xuu111, xuu113, dcd)
new_esEs20(True, True) → True
new_ltEs11(LT, GT) → True
new_esEs40(xuu50000, xuu4000, app(ty_[], gad)) → new_esEs22(xuu50000, xuu4000, gad)
new_esEs8(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs8(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_ltEs19(xuu98, xuu101, app(ty_Ratio, bce)) → new_ltEs16(xuu98, xuu101, bce)
new_compare13(GT, LT) → GT
new_esEs5(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_lt22(xuu551, xuu561, ty_Int) → new_lt10(xuu551, xuu561)
new_ltEs18(xuu62, xuu63, app(ty_Maybe, bad)) → new_ltEs4(xuu62, xuu63, bad)
new_esEs11(xuu5000, xuu400, app(ty_Maybe, ccd)) → new_esEs21(xuu5000, xuu400, ccd)
new_lt4(xuu97, xuu100, ty_Char) → new_lt7(xuu97, xuu100)
new_ltEs23(xuu69, xuu70, app(app(app(ty_@3, fcd), fce), fcf)) → new_ltEs17(xuu69, xuu70, fcd, fce, fcf)
new_gt(xuu22, xuu17, ty_Char) → new_esEs41(new_compare7(xuu22, xuu17))
new_esEs10(xuu5001, xuu401, ty_Float) → new_esEs23(xuu5001, xuu401)
new_primMulNat0(Zero, Zero) → Zero
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Bool, gb) → new_esEs20(xuu50000, xuu4000)
new_ltEs18(xuu62, xuu63, ty_Int) → new_ltEs8(xuu62, xuu63)
new_esEs32(xuu111, xuu113, ty_@0) → new_esEs15(xuu111, xuu113)
new_esEs26(xuu97, xuu100, app(ty_[], bdf)) → new_esEs22(xuu97, xuu100, bdf)
new_esEs7(xuu5001, xuu401, ty_Int) → new_esEs17(xuu5001, xuu401)
new_ltEs19(xuu98, xuu101, ty_Double) → new_ltEs9(xuu98, xuu101)
new_esEs4(xuu5000, xuu400, app(ty_Maybe, fg)) → new_esEs21(xuu5000, xuu400, fg)
new_esEs4(xuu5000, xuu400, app(ty_[], fh)) → new_esEs22(xuu5000, xuu400, fh)
new_ltEs15(xuu55, xuu56) → new_fsEs(new_compare16(xuu55, xuu56))
new_esEs40(xuu50000, xuu4000, app(app(ty_@2, fhh), gaa)) → new_esEs14(xuu50000, xuu4000, fhh, gaa)
new_esEs29(xuu550, xuu560, app(ty_Maybe, cgc)) → new_esEs21(xuu550, xuu560, cgc)
new_esEs14(@2(xuu50000, xuu50001), @2(xuu4000, xuu4001), fc, fd) → new_asAs(new_esEs31(xuu50000, xuu4000, fc), new_esEs30(xuu50001, xuu4001, fd))
new_esEs6(xuu5000, xuu400, ty_Ordering) → new_esEs13(xuu5000, xuu400)
new_esEs13(EQ, EQ) → True
new_ltEs7(True, True) → True
new_esEs6(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_lt5(xuu96, xuu99, ty_Ordering) → new_lt13(xuu96, xuu99)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Char) → new_esEs16(xuu50000, xuu4000)
new_lt21(xuu111, xuu113, app(ty_[], dcg)) → new_lt16(xuu111, xuu113, dcg)
new_ltEs19(xuu98, xuu101, ty_@0) → new_ltEs13(xuu98, xuu101)
new_lt24(xuu500, xuu40, ty_Integer) → new_lt17(xuu500, xuu40)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(ty_Maybe, fee)) → new_esEs21(xuu50000, xuu4000, fee)
new_compare5(xuu5000, xuu400, app(ty_Maybe, ca)) → new_compare8(xuu5000, xuu400, ca)
new_ltEs5(Left(xuu550), Right(xuu560), dgb, dfa) → True
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_[], dfe), dfa) → new_ltEs14(xuu550, xuu560, dfe)
new_esEs31(xuu50000, xuu4000, app(ty_Maybe, dba)) → new_esEs21(xuu50000, xuu4000, dba)
new_esEs21(Just(xuu50000), Just(xuu4000), app(ty_Ratio, cde)) → new_esEs18(xuu50000, xuu4000, cde)
new_esEs5(xuu5000, xuu400, app(app(ty_Either, hc), hd)) → new_esEs24(xuu5000, xuu400, hc, hd)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_ltEs24(xuu55, xuu56, ty_Double) → new_ltEs9(xuu55, xuu56)
new_esEs35(xuu551, xuu561, ty_Float) → new_esEs23(xuu551, xuu561)
new_esEs12(Integer(xuu50000), Integer(xuu4000)) → new_primEqInt(xuu50000, xuu4000)
new_ltEs19(xuu98, xuu101, app(ty_Maybe, bca)) → new_ltEs4(xuu98, xuu101, bca)
new_lt7(xuu500, xuu40) → new_esEs28(new_compare7(xuu500, xuu40))
new_lt24(xuu500, xuu40, app(ty_[], bf)) → new_lt16(xuu500, xuu40, bf)
new_ltEs23(xuu69, xuu70, ty_Ordering) → new_ltEs11(xuu69, xuu70)
new_ltEs21(xuu112, xuu114, app(app(ty_@2, ddg), ddh)) → new_ltEs12(xuu112, xuu114, ddg, ddh)
new_esEs7(xuu5001, xuu401, ty_Float) → new_esEs23(xuu5001, xuu401)
new_lt18(xuu500, xuu40, fcg) → new_esEs28(new_compare17(xuu500, xuu40, fcg))
new_esEs39(xuu50001, xuu4001, ty_@0) → new_esEs15(xuu50001, xuu4001)
new_esEs8(xuu5000, xuu400, app(ty_[], ebe)) → new_esEs22(xuu5000, xuu400, ebe)
new_esEs36(xuu550, xuu560, ty_Integer) → new_esEs12(xuu550, xuu560)
new_esEs32(xuu111, xuu113, ty_Float) → new_esEs23(xuu111, xuu113)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Float) → new_ltEs10(xuu550, xuu560)
new_esEs9(xuu5002, xuu402, app(app(ty_@2, bhe), bhf)) → new_esEs14(xuu5002, xuu402, bhe, bhf)
new_ltEs7(False, True) → True
new_ltEs19(xuu98, xuu101, ty_Float) → new_ltEs10(xuu98, xuu101)
new_esEs30(xuu50001, xuu4001, ty_Char) → new_esEs16(xuu50001, xuu4001)
new_esEs40(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_compare13(GT, GT) → EQ
new_esEs36(xuu550, xuu560, app(ty_[], efh)) → new_esEs22(xuu550, xuu560, efh)
new_lt20(xuu550, xuu560, app(app(ty_@2, cgd), cge)) → new_lt14(xuu550, xuu560, cgd, cge)
new_lt8(xuu500, xuu40, faa) → new_esEs28(new_compare8(xuu500, xuu40, faa))
new_esEs32(xuu111, xuu113, ty_Ordering) → new_esEs13(xuu111, xuu113)
new_lt5(xuu96, xuu99, app(app(ty_Either, bec), bed)) → new_lt6(xuu96, xuu99, bec, bed)
new_lt4(xuu97, xuu100, app(ty_[], bdf)) → new_lt16(xuu97, xuu100, bdf)
new_lt23(xuu550, xuu560, ty_Float) → new_lt12(xuu550, xuu560)
new_lt5(xuu96, xuu99, ty_Float) → new_lt12(xuu96, xuu99)
new_ltEs8(xuu55, xuu56) → new_fsEs(new_compare10(xuu55, xuu56))
new_primCmpNat0(Zero, Succ(xuu4000)) → LT
new_esEs30(xuu50001, xuu4001, ty_Int) → new_esEs17(xuu50001, xuu4001)
new_compare115(xuu155, xuu156, False, ecc) → GT
new_esEs26(xuu97, xuu100, app(app(ty_@2, bdd), bde)) → new_esEs14(xuu97, xuu100, bdd, bde)
new_ltEs22(xuu552, xuu562, app(app(app(ty_@3, edf), edg), edh)) → new_ltEs17(xuu552, xuu562, edf, edg, edh)
new_lt13(xuu500, xuu40) → new_esEs28(new_compare13(xuu500, xuu40))
new_esEs38(xuu50002, xuu4002, ty_Ordering) → new_esEs13(xuu50002, xuu4002)
new_esEs39(xuu50001, xuu4001, ty_Bool) → new_esEs20(xuu50001, xuu4001)
new_lt10(xuu500, xuu40) → new_esEs28(new_compare10(xuu500, xuu40))
new_ltEs18(xuu62, xuu63, ty_@0) → new_ltEs13(xuu62, xuu63)
new_esEs36(xuu550, xuu560, ty_Bool) → new_esEs20(xuu550, xuu560)
new_lt20(xuu550, xuu560, ty_@0) → new_lt15(xuu550, xuu560)
new_lt21(xuu111, xuu113, app(app(app(ty_@3, dda), ddb), ddc)) → new_lt19(xuu111, xuu113, dda, ddb, ddc)
new_lt22(xuu551, xuu561, ty_Integer) → new_lt17(xuu551, xuu561)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Integer, dfa) → new_ltEs15(xuu550, xuu560)
new_esEs9(xuu5002, xuu402, ty_Float) → new_esEs23(xuu5002, xuu402)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Int, gb) → new_esEs17(xuu50000, xuu4000)
new_compare115(xuu155, xuu156, True, ecc) → LT
new_esEs31(xuu50000, xuu4000, app(app(ty_Either, dbc), dbd)) → new_esEs24(xuu50000, xuu4000, dbc, dbd)
new_ltEs21(xuu112, xuu114, ty_Char) → new_ltEs6(xuu112, xuu114)
new_ltEs4(Just(xuu550), Just(xuu560), app(app(app(ty_@3, ef), eg), eh)) → new_ltEs17(xuu550, xuu560, ef, eg, eh)
new_esEs7(xuu5001, xuu401, app(app(app(ty_@3, eaf), eag), eah)) → new_esEs25(xuu5001, xuu401, eaf, eag, eah)
new_ltEs18(xuu62, xuu63, ty_Float) → new_ltEs10(xuu62, xuu63)
new_esEs25(@3(xuu50000, xuu50001, xuu50002), @3(xuu4000, xuu4001, xuu4002), gc, gd, ge) → new_asAs(new_esEs40(xuu50000, xuu4000, gc), new_asAs(new_esEs39(xuu50001, xuu4001, gd), new_esEs38(xuu50002, xuu4002, ge)))
new_esEs31(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_esEs32(xuu111, xuu113, app(app(app(ty_@3, dda), ddb), ddc)) → new_esEs25(xuu111, xuu113, dda, ddb, ddc)
new_esEs27(xuu96, xuu99, app(ty_Maybe, bee)) → new_esEs21(xuu96, xuu99, bee)
new_compare29(xuu69, xuu70, False, fbd) → new_compare115(xuu69, xuu70, new_ltEs23(xuu69, xuu70, fbd), fbd)
new_esEs11(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_esEs28(EQ) → False
new_esEs37(xuu50000, xuu4000, app(ty_Ratio, egg)) → new_esEs18(xuu50000, xuu4000, egg)
new_esEs31(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_sr(xuu5000, xuu400) → new_primMulInt(xuu5000, xuu400)
new_esEs29(xuu550, xuu560, ty_Float) → new_esEs23(xuu550, xuu560)
new_esEs37(xuu50000, xuu4000, ty_Bool) → new_esEs20(xuu50000, xuu4000)
new_esEs31(xuu50000, xuu4000, app(app(app(ty_@3, dbe), dbf), dbg)) → new_esEs25(xuu50000, xuu4000, dbe, dbf, dbg)
new_lt22(xuu551, xuu561, app(ty_Ratio, eeg)) → new_lt18(xuu551, xuu561, eeg)
new_lt4(xuu97, xuu100, app(app(ty_Either, bda), bdb)) → new_lt6(xuu97, xuu100, bda, bdb)
new_lt22(xuu551, xuu561, app(ty_[], eef)) → new_lt16(xuu551, xuu561, eef)
new_esEs37(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_esEs16(Char(xuu50000), Char(xuu4000)) → new_primEqNat0(xuu50000, xuu4000)
new_esEs9(xuu5002, xuu402, app(ty_[], caa)) → new_esEs22(xuu5002, xuu402, caa)
new_lt20(xuu550, xuu560, ty_Bool) → new_lt9(xuu550, xuu560)
new_esEs26(xuu97, xuu100, ty_Integer) → new_esEs12(xuu97, xuu100)
new_esEs27(xuu96, xuu99, app(app(ty_@2, bef), beg)) → new_esEs14(xuu96, xuu99, bef, beg)
new_esEs9(xuu5002, xuu402, ty_Int) → new_esEs17(xuu5002, xuu402)
new_esEs8(xuu5000, xuu400, app(ty_Maybe, ebd)) → new_esEs21(xuu5000, xuu400, ebd)
new_esEs5(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_esEs5(xuu5000, xuu400, app(ty_[], hb)) → new_esEs22(xuu5000, xuu400, hb)
new_esEs8(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_ltEs4(Nothing, Nothing, df) → True
new_lt22(xuu551, xuu561, ty_Ordering) → new_lt13(xuu551, xuu561)
new_esEs7(xuu5001, xuu401, ty_Integer) → new_esEs12(xuu5001, xuu401)
new_compare25(xuu55, xuu56, False, gbb, gbc) → new_compare110(xuu55, xuu56, new_ltEs24(xuu55, xuu56, gbb), gbb, gbc)
new_esEs11(xuu5000, xuu400, app(app(ty_Either, ccf), ccg)) → new_esEs24(xuu5000, xuu400, ccf, ccg)
new_compare111(xuu168, xuu169, xuu170, xuu171, False, xuu173, db, dc) → new_compare19(xuu168, xuu169, xuu170, xuu171, xuu173, db, dc)
new_esEs10(xuu5001, xuu401, app(app(ty_Either, cbd), cbe)) → new_esEs24(xuu5001, xuu401, cbd, cbe)
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_[], ed)) → new_ltEs14(xuu550, xuu560, ed)
new_ltEs9(xuu55, xuu56) → new_fsEs(new_compare11(xuu55, xuu56))
new_compare112(xuu148, xuu149, False, ehg, ehh) → GT
new_esEs5(xuu5000, xuu400, app(app(app(ty_@3, he), hf), hg)) → new_esEs25(xuu5000, xuu400, he, hf, hg)
new_ltEs24(xuu55, xuu56, ty_Float) → new_ltEs10(xuu55, xuu56)
new_esEs29(xuu550, xuu560, ty_Int) → new_esEs17(xuu550, xuu560)
new_lt22(xuu551, xuu561, ty_Double) → new_lt11(xuu551, xuu561)
new_esEs26(xuu97, xuu100, ty_Float) → new_esEs23(xuu97, xuu100)
new_primEqInt(Neg(Succ(xuu500000)), Neg(Zero)) → False
new_primEqInt(Neg(Zero), Neg(Succ(xuu40000))) → False
new_lt24(xuu500, xuu40, ty_Bool) → new_lt9(xuu500, xuu40)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Char) → new_ltEs6(xuu550, xuu560)
new_compare12(Float(xuu5000, xuu5001), Float(xuu400, xuu401)) → new_compare10(new_sr(xuu5000, xuu400), new_sr(xuu5001, xuu401))
new_compare7(Char(xuu5000), Char(xuu400)) → new_primCmpNat0(xuu5000, xuu400)
new_ltEs13(xuu55, xuu56) → new_fsEs(new_compare15(xuu55, xuu56))
new_esEs40(xuu50000, xuu4000, app(app(app(ty_@3, gag), gah), gba)) → new_esEs25(xuu50000, xuu4000, gag, gah, gba)
new_compare5(xuu5000, xuu400, ty_Ordering) → new_compare13(xuu5000, xuu400)
new_ltEs18(xuu62, xuu63, app(ty_Ratio, bah)) → new_ltEs16(xuu62, xuu63, bah)
new_primCmpNat0(Succ(xuu50000), Succ(xuu4000)) → new_primCmpNat0(xuu50000, xuu4000)
new_esEs30(xuu50001, xuu4001, ty_@0) → new_esEs15(xuu50001, xuu4001)
new_esEs13(LT, LT) → True
new_ltEs5(Left(xuu550), Left(xuu560), app(app(ty_Either, deg), deh), dfa) → new_ltEs5(xuu550, xuu560, deg, deh)
new_lt24(xuu500, xuu40, ty_Float) → new_lt12(xuu500, xuu40)
new_esEs36(xuu550, xuu560, ty_Float) → new_esEs23(xuu550, xuu560)
new_compare8(Nothing, Nothing, faa) → EQ
new_lt23(xuu550, xuu560, ty_Ordering) → new_lt13(xuu550, xuu560)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(ty_Ratio, dha)) → new_ltEs16(xuu550, xuu560, dha)
new_esEs39(xuu50001, xuu4001, ty_Double) → new_esEs19(xuu50001, xuu4001)
new_esEs6(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_ltEs21(xuu112, xuu114, ty_Ordering) → new_ltEs11(xuu112, xuu114)
new_compare13(LT, EQ) → LT
new_esEs38(xuu50002, xuu4002, app(app(ty_@2, ffd), ffe)) → new_esEs14(xuu50002, xuu4002, ffd, ffe)
new_esEs27(xuu96, xuu99, ty_Char) → new_esEs16(xuu96, xuu99)
new_ltEs19(xuu98, xuu101, app(ty_[], bcd)) → new_ltEs14(xuu98, xuu101, bcd)
new_esEs30(xuu50001, xuu4001, app(ty_Ratio, chf)) → new_esEs18(xuu50001, xuu4001, chf)
new_compare18(@3(xuu5000, xuu5001, xuu5002), @3(xuu400, xuu401, xuu402), bgg, bgh, bha) → new_compare27(xuu5000, xuu5001, xuu5002, xuu400, xuu401, xuu402, new_asAs(new_esEs11(xuu5000, xuu400, bgg), new_asAs(new_esEs10(xuu5001, xuu401, bgh), new_esEs9(xuu5002, xuu402, bha))), bgg, bgh, bha)
new_lt4(xuu97, xuu100, ty_Double) → new_lt11(xuu97, xuu100)
new_primCompAux00(xuu86, LT) → LT
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Double) → new_ltEs9(xuu550, xuu560)
new_lt16(xuu500, xuu40, bf) → new_esEs28(new_compare0(xuu500, xuu40, bf))
new_esEs4(xuu5000, xuu400, app(app(ty_@2, fc), fd)) → new_esEs14(xuu5000, xuu400, fc, fd)
new_ltEs18(xuu62, xuu63, app(app(ty_@2, bae), baf)) → new_ltEs12(xuu62, xuu63, bae, baf)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_primEqInt(Pos(Succ(xuu500000)), Pos(Zero)) → False
new_primEqInt(Pos(Zero), Pos(Succ(xuu40000))) → False
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(app(ty_@2, feb), fec)) → new_esEs14(xuu50000, xuu4000, feb, fec)
new_primPlusNat0(Zero, Succ(xuu13100)) → Succ(xuu13100)
new_primPlusNat0(Succ(xuu44200), Zero) → Succ(xuu44200)
new_esEs24(Right(xuu50000), Right(xuu4000), ga, app(ty_Ratio, fed)) → new_esEs18(xuu50000, xuu4000, fed)
new_primCmpNat0(Zero, Zero) → EQ
new_ltEs11(GT, EQ) → False
new_compare27(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, True, bbd, bbe, bbf) → EQ
new_primCmpNat0(Succ(xuu50000), Zero) → GT
new_lt23(xuu550, xuu560, ty_Char) → new_lt7(xuu550, xuu560)
new_primCmpInt(Neg(Zero), Pos(Succ(xuu4000))) → LT
new_esEs4(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_lt5(xuu96, xuu99, ty_Char) → new_lt7(xuu96, xuu99)
new_sr0(Integer(xuu50000), Integer(xuu4010)) → Integer(new_primMulInt(xuu50000, xuu4010))
new_gt(xuu22, xuu17, app(app(ty_Either, bfe), bff)) → new_esEs41(new_compare6(xuu22, xuu17, bfe, bff))
new_esEs29(xuu550, xuu560, app(ty_Ratio, cgg)) → new_esEs18(xuu550, xuu560, cgg)
new_esEs4(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs36(xuu550, xuu560, app(ty_Ratio, ega)) → new_esEs18(xuu550, xuu560, ega)
new_primEqInt(Pos(Succ(xuu500000)), Neg(xuu4000)) → False
new_primEqInt(Neg(Succ(xuu500000)), Pos(xuu4000)) → False
new_lt6(xuu500, xuu40, fa, fb) → new_esEs28(new_compare6(xuu500, xuu40, fa, fb))
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Integer, gb) → new_esEs12(xuu50000, xuu4000)
new_esEs38(xuu50002, xuu4002, app(ty_Ratio, fff)) → new_esEs18(xuu50002, xuu4002, fff)
new_esEs20(False, False) → True
new_esEs26(xuu97, xuu100, ty_Int) → new_esEs17(xuu97, xuu100)
new_esEs5(xuu5000, xuu400, app(ty_Maybe, ha)) → new_esEs21(xuu5000, xuu400, ha)
new_compare11(Double(xuu5000, xuu5001), Double(xuu400, xuu401)) → new_compare10(new_sr(xuu5000, xuu400), new_sr(xuu5001, xuu401))
new_esEs8(xuu5000, xuu400, ty_Int) → new_esEs17(xuu5000, xuu400)
new_esEs8(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, app(ty_Maybe, dge)) → new_ltEs4(xuu550, xuu560, dge)
new_ltEs11(LT, EQ) → True
new_compare5(xuu5000, xuu400, ty_Integer) → new_compare16(xuu5000, xuu400)
new_esEs35(xuu551, xuu561, app(ty_Maybe, eec)) → new_esEs21(xuu551, xuu561, eec)
new_esEs22([], [], fh) → True
new_esEs41(EQ) → False
new_esEs6(xuu5000, xuu400, ty_Float) → new_esEs23(xuu5000, xuu400)
new_gt(xuu22, xuu17, ty_@0) → new_esEs41(new_compare15(xuu22, xuu17))
new_esEs6(xuu5000, xuu400, app(app(ty_@2, fab), fac)) → new_esEs14(xuu5000, xuu400, fab, fac)
new_ltEs20(xuu551, xuu561, app(app(app(ty_@3, cff), cfg), cfh)) → new_ltEs17(xuu551, xuu561, cff, cfg, cfh)
new_compare5(xuu5000, xuu400, ty_@0) → new_compare15(xuu5000, xuu400)
new_primCmpInt(Pos(Succ(xuu50000)), Pos(xuu400)) → new_primCmpNat0(Succ(xuu50000), xuu400)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_Char, gb) → new_esEs16(xuu50000, xuu4000)
new_esEs9(xuu5002, xuu402, app(app(ty_Either, cab), cac)) → new_esEs24(xuu5002, xuu402, cab, cac)
new_ltEs20(xuu551, xuu561, ty_Integer) → new_ltEs15(xuu551, xuu561)
new_esEs31(xuu50000, xuu4000, app(ty_[], dbb)) → new_esEs22(xuu50000, xuu4000, dbb)
new_ltEs23(xuu69, xuu70, app(ty_[], fcb)) → new_ltEs14(xuu69, xuu70, fcb)
new_esEs31(xuu50000, xuu4000, ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs27(xuu96, xuu99, app(app(app(ty_@3, bfb), bfc), bfd)) → new_esEs25(xuu96, xuu99, bfb, bfc, bfd)
new_esEs32(xuu111, xuu113, app(app(ty_Either, dcb), dcc)) → new_esEs24(xuu111, xuu113, dcb, dcc)
new_esEs9(xuu5002, xuu402, ty_Char) → new_esEs16(xuu5002, xuu402)
new_lt24(xuu500, xuu40, ty_Double) → new_lt11(xuu500, xuu40)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Ordering) → new_ltEs11(xuu550, xuu560)
new_ltEs11(GT, GT) → True
new_gt(xuu22, xuu17, ty_Float) → new_esEs41(new_compare12(xuu22, xuu17))
new_gt(xuu22, xuu17, ty_Int) → new_gt0(xuu22, xuu17)
new_primCmpInt(Pos(Succ(xuu50000)), Neg(xuu400)) → GT
new_lt21(xuu111, xuu113, app(app(ty_@2, dce), dcf)) → new_lt14(xuu111, xuu113, dce, dcf)
new_esEs27(xuu96, xuu99, ty_@0) → new_esEs15(xuu96, xuu99)
new_esEs4(xuu5000, xuu400, app(app(ty_Either, ga), gb)) → new_esEs24(xuu5000, xuu400, ga, gb)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Integer) → new_ltEs15(xuu550, xuu560)
new_primMulInt(Pos(xuu50000), Pos(xuu4000)) → Pos(new_primMulNat0(xuu50000, xuu4000))
new_lt4(xuu97, xuu100, ty_@0) → new_lt15(xuu97, xuu100)
new_esEs21(Just(xuu50000), Just(xuu4000), app(app(ty_@2, cdc), cdd)) → new_esEs14(xuu50000, xuu4000, cdc, cdd)
new_ltEs21(xuu112, xuu114, app(app(ty_Either, ddd), dde)) → new_ltEs5(xuu112, xuu114, ddd, dde)
new_esEs28(GT) → False
new_compare114(xuu183, xuu184, xuu185, xuu186, xuu187, xuu188, False, bhb, bhc, bhd) → GT
new_ltEs19(xuu98, xuu101, app(app(ty_Either, bbg), bbh)) → new_ltEs5(xuu98, xuu101, bbg, bbh)
new_primPlusNat0(Zero, Zero) → Zero
new_esEs17(xuu5000, xuu400) → new_primEqInt(xuu5000, xuu400)
new_ltEs22(xuu552, xuu562, ty_@0) → new_ltEs13(xuu552, xuu562)
new_primEqInt(Pos(Zero), Pos(Zero)) → True
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Bool) → new_ltEs7(xuu550, xuu560)
new_lt24(xuu500, xuu40, app(app(app(ty_@3, bgg), bgh), bha)) → new_lt19(xuu500, xuu40, bgg, bgh, bha)
new_esEs8(xuu5000, xuu400, app(app(ty_Either, ebf), ebg)) → new_esEs24(xuu5000, xuu400, ebf, ebg)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Int) → new_ltEs8(xuu550, xuu560)
new_esEs40(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_esEs40(xuu50000, xuu4000, app(ty_Maybe, gac)) → new_esEs21(xuu50000, xuu4000, gac)
new_esEs10(xuu5001, xuu401, ty_Int) → new_esEs17(xuu5001, xuu401)
new_esEs36(xuu550, xuu560, ty_Char) → new_esEs16(xuu550, xuu560)
new_lt4(xuu97, xuu100, app(ty_Ratio, bdg)) → new_lt18(xuu97, xuu100, bdg)
new_lt20(xuu550, xuu560, ty_Double) → new_lt11(xuu550, xuu560)
new_esEs4(xuu5000, xuu400, app(app(app(ty_@3, gc), gd), ge)) → new_esEs25(xuu5000, xuu400, gc, gd, ge)
new_ltEs23(xuu69, xuu70, ty_Integer) → new_ltEs15(xuu69, xuu70)
new_primCmpInt(Neg(Zero), Neg(Succ(xuu4000))) → new_primCmpNat0(Succ(xuu4000), Zero)
new_compare5(xuu5000, xuu400, app(app(app(ty_@3, cf), cg), da)) → new_compare18(xuu5000, xuu400, cf, cg, da)
new_compare27(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, False, bbd, bbe, bbf) → new_compare113(xuu96, xuu97, xuu98, xuu99, xuu100, xuu101, new_lt5(xuu96, xuu99, bbd), new_asAs(new_esEs27(xuu96, xuu99, bbd), new_pePe(new_lt4(xuu97, xuu100, bbe), new_asAs(new_esEs26(xuu97, xuu100, bbe), new_ltEs19(xuu98, xuu101, bbf)))), bbd, bbe, bbf)
new_lt22(xuu551, xuu561, app(app(ty_Either, eea), eeb)) → new_lt6(xuu551, xuu561, eea, eeb)
new_lt20(xuu550, xuu560, ty_Char) → new_lt7(xuu550, xuu560)
new_esEs39(xuu50001, xuu4001, app(app(ty_@2, fgf), fgg)) → new_esEs14(xuu50001, xuu4001, fgf, fgg)
new_esEs29(xuu550, xuu560, ty_@0) → new_esEs15(xuu550, xuu560)
new_compare28(xuu111, xuu112, xuu113, xuu114, False, dbh, dca) → new_compare111(xuu111, xuu112, xuu113, xuu114, new_lt21(xuu111, xuu113, dbh), new_asAs(new_esEs32(xuu111, xuu113, dbh), new_ltEs21(xuu112, xuu114, dca)), dbh, dca)
new_esEs40(xuu50000, xuu4000, ty_Char) → new_esEs16(xuu50000, xuu4000)
new_esEs26(xuu97, xuu100, app(app(ty_Either, bda), bdb)) → new_esEs24(xuu97, xuu100, bda, bdb)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_@0) → new_esEs15(xuu50000, xuu4000)
new_esEs21(Just(xuu50000), Just(xuu4000), ty_Float) → new_esEs23(xuu50000, xuu4000)
new_ltEs21(xuu112, xuu114, ty_Integer) → new_ltEs15(xuu112, xuu114)
new_esEs31(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_ltEs4(Just(xuu550), Just(xuu560), ty_Ordering) → new_ltEs11(xuu550, xuu560)
new_ltEs5(Left(xuu550), Left(xuu560), app(ty_Maybe, dfb), dfa) → new_ltEs4(xuu550, xuu560, dfb)
new_lt20(xuu550, xuu560, app(ty_[], cgf)) → new_lt16(xuu550, xuu560, cgf)
new_esEs35(xuu551, xuu561, app(app(app(ty_@3, eeh), efa), efb)) → new_esEs25(xuu551, xuu561, eeh, efa, efb)
new_ltEs24(xuu55, xuu56, app(app(app(ty_@3, ecd), ece), ecf)) → new_ltEs17(xuu55, xuu56, ecd, ece, ecf)
new_esEs37(xuu50000, xuu4000, app(app(ty_@2, ege), egf)) → new_esEs14(xuu50000, xuu4000, ege, egf)
new_esEs39(xuu50001, xuu4001, app(app(ty_Either, fhc), fhd)) → new_esEs24(xuu50001, xuu4001, fhc, fhd)
new_compare29(xuu69, xuu70, True, fbd) → EQ
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_Integer) → new_ltEs15(xuu550, xuu560)
new_ltEs24(xuu55, xuu56, ty_Char) → new_ltEs6(xuu55, xuu56)
new_esEs37(xuu50000, xuu4000, ty_Ordering) → new_esEs13(xuu50000, xuu4000)
new_esEs22([], :(xuu4000, xuu4001), fh) → False
new_esEs22(:(xuu50000, xuu50001), [], fh) → False
new_esEs15(@0, @0) → True
new_ltEs23(xuu69, xuu70, ty_Char) → new_ltEs6(xuu69, xuu70)
new_esEs11(xuu5000, xuu400, app(app(ty_@2, cca), ccb)) → new_esEs14(xuu5000, xuu400, cca, ccb)
new_esEs29(xuu550, xuu560, ty_Double) → new_esEs19(xuu550, xuu560)
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_Ratio, fdb), gb) → new_esEs18(xuu50000, xuu4000, fdb)
new_esEs34(xuu50000, xuu4000, ty_Integer) → new_esEs12(xuu50000, xuu4000)
new_lt4(xuu97, xuu100, ty_Integer) → new_lt17(xuu97, xuu100)
new_ltEs5(Left(xuu550), Left(xuu560), app(app(ty_@2, dfc), dfd), dfa) → new_ltEs12(xuu550, xuu560, dfc, dfd)
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(ty_@2, fch), fda), gb) → new_esEs14(xuu50000, xuu4000, fch, fda)
new_primMulNat0(Succ(xuu500000), Zero) → Zero
new_primMulNat0(Zero, Succ(xuu40000)) → Zero
new_esEs35(xuu551, xuu561, ty_Bool) → new_esEs20(xuu551, xuu561)
new_esEs13(GT, EQ) → False
new_esEs13(EQ, GT) → False
new_esEs39(xuu50001, xuu4001, ty_Float) → new_esEs23(xuu50001, xuu4001)
new_esEs24(Left(xuu50000), Left(xuu4000), app(app(ty_Either, fde), fdf), gb) → new_esEs24(xuu50000, xuu4000, fde, fdf)
new_ltEs11(EQ, LT) → False
new_esEs24(Left(xuu50000), Left(xuu4000), app(ty_[], fdd), gb) → new_esEs22(xuu50000, xuu4000, fdd)
new_ltEs23(xuu69, xuu70, ty_Double) → new_ltEs9(xuu69, xuu70)
new_compare26(xuu62, xuu63, False, hh, baa) → new_compare112(xuu62, xuu63, new_ltEs18(xuu62, xuu63, baa), hh, baa)
new_esEs24(Left(xuu50000), Left(xuu4000), ty_@0, gb) → new_esEs15(xuu50000, xuu4000)
new_esEs35(xuu551, xuu561, app(app(ty_@2, eed), eee)) → new_esEs14(xuu551, xuu561, eed, eee)
new_esEs4(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_ltEs22(xuu552, xuu562, ty_Ordering) → new_ltEs11(xuu552, xuu562)
new_esEs5(xuu5000, xuu400, ty_Char) → new_esEs16(xuu5000, xuu400)
new_esEs37(xuu50000, xuu4000, app(app(ty_Either, ehb), ehc)) → new_esEs24(xuu50000, xuu4000, ehb, ehc)
new_compare5(xuu5000, xuu400, app(ty_Ratio, ce)) → new_compare17(xuu5000, xuu400, ce)
new_esEs36(xuu550, xuu560, ty_@0) → new_esEs15(xuu550, xuu560)
new_ltEs24(xuu55, xuu56, ty_Integer) → new_ltEs15(xuu55, xuu56)
new_ltEs5(Left(xuu550), Left(xuu560), ty_@0, dfa) → new_ltEs13(xuu550, xuu560)
new_ltEs4(Just(xuu550), Just(xuu560), app(ty_Ratio, ee)) → new_ltEs16(xuu550, xuu560, ee)
new_esEs26(xuu97, xuu100, ty_Double) → new_esEs19(xuu97, xuu100)
new_lt21(xuu111, xuu113, ty_@0) → new_lt15(xuu111, xuu113)
new_esEs38(xuu50002, xuu4002, ty_Float) → new_esEs23(xuu50002, xuu4002)
new_esEs41(LT) → False
new_compare9(False, True) → LT
new_esEs4(xuu5000, xuu400, ty_@0) → new_esEs15(xuu5000, xuu400)
new_esEs35(xuu551, xuu561, ty_Ordering) → new_esEs13(xuu551, xuu561)
new_ltEs5(Right(xuu550), Right(xuu560), dgb, ty_@0) → new_ltEs13(xuu550, xuu560)
new_ltEs21(xuu112, xuu114, ty_@0) → new_ltEs13(xuu112, xuu114)
new_esEs39(xuu50001, xuu4001, ty_Integer) → new_esEs12(xuu50001, xuu4001)
new_compare10(xuu500, xuu40) → new_primCmpInt(xuu500, xuu40)
new_esEs11(xuu5000, xuu400, ty_Integer) → new_esEs12(xuu5000, xuu400)
new_gt(xuu22, xuu17, app(ty_Maybe, bfg)) → new_esEs41(new_compare8(xuu22, xuu17, bfg))
new_esEs36(xuu550, xuu560, app(app(ty_Either, efc), efd)) → new_esEs24(xuu550, xuu560, efc, efd)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Int, dfa) → new_ltEs8(xuu550, xuu560)
new_gt(xuu22, xuu17, ty_Bool) → new_esEs41(new_compare9(xuu22, xuu17))
new_ltEs19(xuu98, xuu101, app(app(app(ty_@3, bcf), bcg), bch)) → new_ltEs17(xuu98, xuu101, bcf, bcg, bch)
new_esEs8(xuu5000, xuu400, app(app(app(ty_@3, ebh), eca), ecb)) → new_esEs25(xuu5000, xuu400, ebh, eca, ecb)
new_esEs38(xuu50002, xuu4002, ty_Integer) → new_esEs12(xuu50002, xuu4002)
new_ltEs7(False, False) → True
new_lt4(xuu97, xuu100, app(app(ty_@2, bdd), bde)) → new_lt14(xuu97, xuu100, bdd, bde)
new_lt21(xuu111, xuu113, ty_Float) → new_lt12(xuu111, xuu113)
new_lt4(xuu97, xuu100, ty_Bool) → new_lt9(xuu97, xuu100)
new_esEs30(xuu50001, xuu4001, ty_Double) → new_esEs19(xuu50001, xuu4001)
new_esEs7(xuu5001, xuu401, app(app(ty_Either, ead), eae)) → new_esEs24(xuu5001, xuu401, ead, eae)
new_esEs37(xuu50000, xuu4000, ty_Int) → new_esEs17(xuu50000, xuu4000)
new_esEs31(xuu50000, xuu4000, ty_Float) → new_esEs23(xuu50000, xuu4000)
new_primMulNat0(Succ(xuu500000), Succ(xuu40000)) → new_primPlusNat0(new_primMulNat0(xuu500000, Succ(xuu40000)), Succ(xuu40000))
new_esEs37(xuu50000, xuu4000, ty_Double) → new_esEs19(xuu50000, xuu4000)
new_ltEs20(xuu551, xuu561, ty_Char) → new_ltEs6(xuu551, xuu561)
new_esEs36(xuu550, xuu560, app(app(app(ty_@3, egb), egc), egd)) → new_esEs25(xuu550, xuu560, egb, egc, egd)
new_primPlusNat0(Succ(xuu44200), Succ(xuu13100)) → Succ(Succ(new_primPlusNat0(xuu44200, xuu13100)))
new_lt20(xuu550, xuu560, app(ty_Maybe, cgc)) → new_lt8(xuu550, xuu560, cgc)
new_esEs10(xuu5001, xuu401, app(app(app(ty_@3, cbf), cbg), cbh)) → new_esEs25(xuu5001, xuu401, cbf, cbg, cbh)
new_esEs7(xuu5001, xuu401, app(app(ty_@2, dhg), dhh)) → new_esEs14(xuu5001, xuu401, dhg, dhh)
new_lt20(xuu550, xuu560, app(app(app(ty_@3, cgh), cha), chb)) → new_lt19(xuu550, xuu560, cgh, cha, chb)
new_esEs9(xuu5002, xuu402, ty_Ordering) → new_esEs13(xuu5002, xuu402)
new_esEs32(xuu111, xuu113, ty_Integer) → new_esEs12(xuu111, xuu113)
new_ltEs4(Just(xuu550), Nothing, df) → False
new_esEs9(xuu5002, xuu402, ty_Double) → new_esEs19(xuu5002, xuu402)
new_esEs6(xuu5000, xuu400, app(app(app(ty_@3, fba), fbb), fbc)) → new_esEs25(xuu5000, xuu400, fba, fbb, fbc)
new_ltEs23(xuu69, xuu70, ty_Int) → new_ltEs8(xuu69, xuu70)
new_esEs11(xuu5000, xuu400, ty_Bool) → new_esEs20(xuu5000, xuu400)
new_lt22(xuu551, xuu561, ty_Bool) → new_lt9(xuu551, xuu561)
new_ltEs20(xuu551, xuu561, app(ty_Maybe, cfa)) → new_ltEs4(xuu551, xuu561, cfa)
new_compare13(EQ, GT) → LT
new_primCompAux0(xuu5000, xuu400, xuu50, bf) → new_primCompAux00(xuu50, new_compare5(xuu5000, xuu400, bf))
new_ltEs23(xuu69, xuu70, ty_Bool) → new_ltEs7(xuu69, xuu70)
new_ltEs20(xuu551, xuu561, ty_@0) → new_ltEs13(xuu551, xuu561)
new_ltEs5(Left(xuu550), Left(xuu560), ty_Ordering, dfa) → new_ltEs11(xuu550, xuu560)
new_esEs11(xuu5000, xuu400, app(ty_[], cce)) → new_esEs22(xuu5000, xuu400, cce)
new_compare5(xuu5000, xuu400, ty_Int) → new_compare10(xuu5000, xuu400)
new_ltEs23(xuu69, xuu70, app(app(ty_Either, fbe), fbf)) → new_ltEs5(xuu69, xuu70, fbe, fbf)
new_primCompAux00(xuu86, GT) → GT
new_lt5(xuu96, xuu99, app(ty_Maybe, bee)) → new_lt8(xuu96, xuu99, bee)
new_compare14(@2(xuu5000, xuu5001), @2(xuu400, xuu401), dhe, dhf) → new_compare28(xuu5000, xuu5001, xuu400, xuu401, new_asAs(new_esEs8(xuu5000, xuu400, dhe), new_esEs7(xuu5001, xuu401, dhf)), dhe, dhf)
new_ltEs18(xuu62, xuu63, ty_Double) → new_ltEs9(xuu62, xuu63)
new_primCmpInt(Pos(Zero), Pos(Zero)) → EQ
new_ltEs11(EQ, GT) → True
new_ltEs20(xuu551, xuu561, app(app(ty_Either, ceg), ceh)) → new_ltEs5(xuu551, xuu561, ceg, ceh)
new_ltEs21(xuu112, xuu114, ty_Double) → new_ltEs9(xuu112, xuu114)
new_esEs38(xuu50002, xuu4002, app(app(ty_Either, fga), fgb)) → new_esEs24(xuu50002, xuu4002, fga, fgb)
new_primCmpInt(Neg(Succ(xuu50000)), Pos(xuu400)) → LT
new_lt23(xuu550, xuu560, ty_@0) → new_lt15(xuu550, xuu560)

The set Q consists of the following terms:

new_lt5(x0, x1, ty_Char)
new_compare9(True, False)
new_compare9(False, True)
new_esEs24(Left(x0), Left(x1), ty_Float, x2)
new_esEs26(x0, x1, ty_Float)
new_esEs8(x0, x1, app(ty_[], x2))
new_lt20(x0, x1, ty_Float)
new_esEs31(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Ordering)
new_esEs5(x0, x1, ty_Int)
new_ltEs19(x0, x1, ty_Bool)
new_primEqInt(Pos(Zero), Neg(Succ(x0)))
new_primEqInt(Neg(Zero), Pos(Succ(x0)))
new_esEs24(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs37(x0, x1, ty_Integer)
new_lt24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs35(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, ty_Float)
new_esEs37(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, ty_Bool)
new_compare0([], [], x0)
new_esEs6(x0, x1, ty_@0)
new_ltEs18(x0, x1, app(app(ty_@2, x2), x3))
new_compare10(x0, x1)
new_ltEs11(EQ, EQ)
new_compare29(x0, x1, True, x2)
new_esEs27(x0, x1, ty_Double)
new_esEs30(x0, x1, app(app(ty_@2, x2), x3))
new_esEs26(x0, x1, ty_Int)
new_esEs36(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(ty_Either, x2), x3))
new_esEs26(x0, x1, ty_Bool)
new_esEs11(x0, x1, ty_Integer)
new_esEs28(EQ)
new_esEs31(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(x0, x1, ty_Bool)
new_lt20(x0, x1, app(app(ty_@2, x2), x3))
new_esEs27(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs15(x0, x1)
new_ltEs24(x0, x1, app(ty_Ratio, x2))
new_gt(x0, x1, app(app(ty_@2, x2), x3))
new_esEs21(Just(x0), Just(x1), app(ty_[], x2))
new_esEs35(x0, x1, app(app(ty_Either, x2), x3))
new_pePe(False, x0)
new_esEs21(Just(x0), Just(x1), ty_Ordering)
new_ltEs20(x0, x1, app(ty_[], x2))
new_lt10(x0, x1)
new_esEs21(Just(x0), Just(x1), ty_Char)
new_ltEs21(x0, x1, ty_Float)
new_ltEs18(x0, x1, app(ty_Maybe, x2))
new_esEs26(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs8(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Bool)
new_lt4(x0, x1, app(ty_Ratio, x2))
new_ltEs20(x0, x1, app(app(ty_@2, x2), x3))
new_gt(x0, x1, ty_@0)
new_esEs9(x0, x1, app(ty_[], x2))
new_lt24(x0, x1, ty_Bool)
new_esEs12(Integer(x0), Integer(x1))
new_compare5(x0, x1, ty_@0)
new_compare112(x0, x1, True, x2, x3)
new_compare9(True, True)
new_ltEs23(x0, x1, app(ty_[], x2))
new_compare8(Just(x0), Nothing, x1)
new_compare25(x0, x1, True, x2, x3)
new_esEs30(x0, x1, ty_Ordering)
new_esEs24(Left(x0), Left(x1), ty_Double, x2)
new_compare5(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, ty_@0)
new_esEs10(x0, x1, app(ty_[], x2))
new_esEs32(x0, x1, app(ty_[], x2))
new_esEs37(x0, x1, ty_Ordering)
new_esEs10(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs24(x0, x1, ty_Bool)
new_ltEs22(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_gt(x0, x1, app(ty_[], x2))
new_ltEs21(x0, x1, app(ty_Ratio, x2))
new_esEs35(x0, x1, ty_@0)
new_gt(x0, x1, ty_Integer)
new_ltEs11(GT, LT)
new_ltEs11(LT, GT)
new_compare111(x0, x1, x2, x3, False, x4, x5, x6)
new_esEs13(LT, GT)
new_esEs13(GT, LT)
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_esEs40(x0, x1, app(ty_Ratio, x2))
new_esEs6(x0, x1, ty_Ordering)
new_compare14(@2(x0, x1), @2(x2, x3), x4, x5)
new_lt4(x0, x1, app(app(ty_@2, x2), x3))
new_lt23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs35(x0, x1, app(app(ty_@2, x2), x3))
new_lt23(x0, x1, app(app(ty_@2, x2), x3))
new_primEqNat0(Zero, Zero)
new_compare110(x0, x1, False, x2, x3)
new_esEs10(x0, x1, ty_Char)
new_ltEs21(x0, x1, app(ty_Maybe, x2))
new_compare29(x0, x1, False, x2)
new_esEs5(x0, x1, ty_Double)
new_esEs4(x0, x1, ty_Float)
new_primEqInt(Pos(Zero), Pos(Succ(x0)))
new_esEs27(x0, x1, ty_Int)
new_esEs13(EQ, GT)
new_esEs13(GT, EQ)
new_esEs22(:(x0, x1), :(x2, x3), x4)
new_esEs24(Left(x0), Left(x1), ty_Ordering, x2)
new_ltEs5(Right(x0), Left(x1), x2, x3)
new_ltEs5(Left(x0), Right(x1), x2, x3)
new_lt23(x0, x1, app(ty_Maybe, x2))
new_esEs11(x0, x1, ty_Char)
new_lt21(x0, x1, app(ty_[], x2))
new_primMulNat0(Zero, Zero)
new_esEs26(x0, x1, app(ty_Ratio, x2))
new_lt22(x0, x1, ty_Ordering)
new_esEs7(x0, x1, app(ty_Maybe, x2))
new_esEs24(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_esEs30(x0, x1, app(ty_[], x2))
new_ltEs4(Just(x0), Just(x1), ty_Char)
new_esEs27(x0, x1, app(ty_Ratio, x2))
new_esEs6(x0, x1, app(ty_Maybe, x2))
new_esEs24(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_compare13(LT, LT)
new_esEs31(x0, x1, ty_Integer)
new_fsEs(x0)
new_ltEs5(Right(x0), Right(x1), x2, ty_Integer)
new_esEs6(x0, x1, ty_Integer)
new_gt(x0, x1, app(ty_Maybe, x2))
new_esEs4(x0, x1, ty_Int)
new_esEs20(True, True)
new_esEs8(x0, x1, ty_Integer)
new_ltEs23(x0, x1, ty_Integer)
new_esEs9(x0, x1, ty_Bool)
new_esEs8(x0, x1, ty_Char)
new_esEs4(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs22(x0, x1, ty_@0)
new_esEs9(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs32(x0, x1, app(app(ty_@2, x2), x3))
new_esEs37(x0, x1, ty_Double)
new_primMulInt(Neg(x0), Neg(x1))
new_lt4(x0, x1, app(app(ty_Either, x2), x3))
new_gt(x0, x1, ty_Bool)
new_compare0(:(x0, x1), :(x2, x3), x4)
new_gt(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt23(x0, x1, ty_Char)
new_esEs18(:%(x0, x1), :%(x2, x3), x4)
new_primMulInt(Pos(x0), Pos(x1))
new_esEs36(x0, x1, app(ty_Maybe, x2))
new_ltEs4(Just(x0), Just(x1), app(ty_Ratio, x2))
new_compare19(x0, x1, x2, x3, False, x4, x5)
new_compare5(x0, x1, app(ty_Maybe, x2))
new_esEs21(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs21(Just(x0), Just(x1), ty_@0)
new_esEs40(x0, x1, app(app(ty_Either, x2), x3))
new_compare16(Integer(x0), Integer(x1))
new_lt22(x0, x1, ty_Int)
new_esEs35(x0, x1, ty_Float)
new_esEs27(x0, x1, ty_Char)
new_compare6(Right(x0), Left(x1), x2, x3)
new_compare6(Left(x0), Right(x1), x2, x3)
new_ltEs20(x0, x1, ty_Integer)
new_esEs29(x0, x1, ty_Double)
new_esEs20(False, False)
new_lt21(x0, x1, ty_@0)
new_esEs5(x0, x1, ty_@0)
new_esEs35(x0, x1, ty_Int)
new_compare115(x0, x1, True, x2)
new_esEs5(x0, x1, app(ty_Maybe, x2))
new_ltEs21(x0, x1, ty_Int)
new_lt19(x0, x1, x2, x3, x4)
new_esEs9(x0, x1, ty_Ordering)
new_esEs5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs24(Left(x0), Left(x1), ty_Bool, x2)
new_primEqNat0(Succ(x0), Zero)
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_sr0(Integer(x0), Integer(x1))
new_esEs26(x0, x1, app(app(ty_Either, x2), x3))
new_esEs29(x0, x1, ty_Float)
new_ltEs23(x0, x1, ty_Char)
new_lt23(x0, x1, ty_Int)
new_esEs39(x0, x1, ty_Double)
new_esEs31(x0, x1, ty_Bool)
new_esEs10(x0, x1, ty_Integer)
new_esEs16(Char(x0), Char(x1))
new_ltEs18(x0, x1, ty_Bool)
new_compare5(x0, x1, app(app(ty_@2, x2), x3))
new_lt23(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare5(x0, x1, app(ty_Ratio, x2))
new_compare111(x0, x1, x2, x3, True, x4, x5, x6)
new_esEs7(x0, x1, app(ty_Ratio, x2))
new_esEs30(x0, x1, ty_Int)
new_esEs32(x0, x1, ty_Double)
new_esEs6(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Right(x0), Right(x1), x2, ty_Bool)
new_esEs29(x0, x1, ty_Ordering)
new_ltEs5(Left(x0), Left(x1), app(ty_Maybe, x2), x3)
new_esEs4(x0, x1, ty_Char)
new_esEs38(x0, x1, ty_Ordering)
new_esEs35(x0, x1, ty_Integer)
new_esEs39(x0, x1, ty_Bool)
new_compare27(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_esEs6(x0, x1, ty_Double)
new_lt22(x0, x1, ty_Float)
new_esEs5(x0, x1, ty_Integer)
new_ltEs4(Just(x0), Just(x1), ty_Bool)
new_esEs30(x0, x1, ty_Float)
new_ltEs19(x0, x1, app(ty_Ratio, x2))
new_primPlusNat0(Zero, Succ(x0))
new_lt21(x0, x1, app(app(ty_@2, x2), x3))
new_esEs36(x0, x1, ty_@0)
new_ltEs19(x0, x1, ty_Double)
new_esEs37(x0, x1, ty_Int)
new_esEs9(x0, x1, app(app(ty_@2, x2), x3))
new_esEs9(x0, x1, ty_Float)
new_primCmpInt(Pos(Zero), Pos(Zero))
new_compare114(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_ltEs4(Just(x0), Just(x1), ty_Float)
new_primEqInt(Neg(Succ(x0)), Pos(x1))
new_primEqInt(Pos(Succ(x0)), Neg(x1))
new_primEqNat0(Succ(x0), Succ(x1))
new_esEs6(x0, x1, ty_Bool)
new_esEs36(x0, x1, ty_Float)
new_compare13(EQ, LT)
new_compare13(LT, EQ)
new_primEqInt(Neg(Zero), Neg(Zero))
new_ltEs6(x0, x1)
new_esEs10(x0, x1, ty_Bool)
new_esEs27(x0, x1, app(ty_Maybe, x2))
new_esEs28(GT)
new_esEs11(x0, x1, ty_@0)
new_esEs38(x0, x1, ty_Int)
new_esEs35(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt21(x0, x1, app(ty_Ratio, x2))
new_esEs7(x0, x1, ty_Char)
new_esEs35(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_lt22(x0, x1, ty_Double)
new_compare5(x0, x1, ty_Bool)
new_lt24(x0, x1, ty_Float)
new_esEs37(x0, x1, ty_Float)
new_lt5(x0, x1, ty_Bool)
new_esEs31(x0, x1, ty_Ordering)
new_compare13(LT, GT)
new_compare13(GT, LT)
new_esEs32(x0, x1, ty_Float)
new_lt24(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs18(x0, x1, app(ty_Ratio, x2))
new_ltEs19(x0, x1, ty_Int)
new_esEs5(x0, x1, app(app(ty_@2, x2), x3))
new_esEs10(x0, x1, ty_Int)
new_esEs26(x0, x1, ty_Double)
new_esEs24(Right(x0), Right(x1), x2, ty_Bool)
new_esEs4(x0, x1, ty_Ordering)
new_ltEs4(Just(x0), Just(x1), app(ty_Maybe, x2))
new_ltEs22(x0, x1, app(ty_[], x2))
new_ltEs5(Right(x0), Right(x1), x2, ty_Double)
new_primCmpNat0(Succ(x0), Zero)
new_esEs21(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_esEs37(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs11(LT, EQ)
new_ltEs11(EQ, LT)
new_esEs39(x0, x1, app(ty_Ratio, x2))
new_ltEs4(Nothing, Nothing, x0)
new_primCmpInt(Neg(Succ(x0)), Pos(x1))
new_primCmpInt(Pos(Succ(x0)), Neg(x1))
new_esEs38(x0, x1, ty_Bool)
new_ltEs21(x0, x1, app(ty_[], x2))
new_lt4(x0, x1, ty_@0)
new_lt5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare11(Double(x0, x1), Double(x2, x3))
new_ltEs21(x0, x1, ty_Double)
new_esEs40(x0, x1, ty_Ordering)
new_lt23(x0, x1, ty_Integer)
new_esEs31(x0, x1, ty_Float)
new_lt4(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs29(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs22(x0, x1, ty_Char)
new_esEs39(x0, x1, ty_Char)
new_esEs5(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Right(x0), Right(x1), x2, app(app(ty_@2, x3), x4))
new_lt22(x0, x1, ty_Bool)
new_esEs7(x0, x1, ty_Int)
new_esEs24(Right(x0), Right(x1), x2, ty_Int)
new_esEs7(x0, x1, ty_Ordering)
new_lt11(x0, x1)
new_lt23(x0, x1, ty_@0)
new_ltEs23(x0, x1, ty_Bool)
new_esEs5(x0, x1, app(ty_[], x2))
new_ltEs23(x0, x1, ty_Int)
new_esEs40(x0, x1, app(ty_Maybe, x2))
new_lt22(x0, x1, app(app(ty_Either, x2), x3))
new_esEs8(x0, x1, app(app(ty_Either, x2), x3))
new_esEs40(x0, x1, app(app(ty_@2, x2), x3))
new_lt21(x0, x1, ty_Float)
new_ltEs19(x0, x1, ty_Integer)
new_esEs13(LT, LT)
new_ltEs24(x0, x1, app(app(ty_@2, x2), x3))
new_esEs10(x0, x1, app(ty_Maybe, x2))
new_esEs24(Left(x0), Left(x1), ty_@0, x2)
new_ltEs18(x0, x1, ty_Ordering)
new_esEs30(x0, x1, ty_Char)
new_esEs11(x0, x1, app(ty_Ratio, x2))
new_compare17(:%(x0, x1), :%(x2, x3), ty_Integer)
new_ltEs4(Just(x0), Just(x1), app(ty_[], x2))
new_ltEs24(x0, x1, ty_Ordering)
new_esEs33(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Float)
new_esEs21(Just(x0), Just(x1), ty_Bool)
new_esEs27(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, ty_Integer)
new_ltEs24(x0, x1, ty_Char)
new_ltEs23(x0, x1, ty_Double)
new_esEs37(x0, x1, app(ty_Maybe, x2))
new_esEs32(x0, x1, ty_Int)
new_esEs24(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs32(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_not(True)
new_ltEs5(Left(x0), Left(x1), ty_Integer, x2)
new_esEs6(x0, x1, ty_Char)
new_compare5(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs30(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs9(x0, x1, ty_@0)
new_pePe(True, x0)
new_primEqInt(Neg(Succ(x0)), Neg(Zero))
new_lt5(x0, x1, ty_Integer)
new_esEs40(x0, x1, ty_Float)
new_primCmpInt(Pos(Zero), Neg(Zero))
new_primCmpInt(Neg(Zero), Pos(Zero))
new_not(False)
new_esEs7(x0, x1, app(ty_[], x2))
new_esEs40(x0, x1, ty_@0)
new_lt20(x0, x1, ty_@0)
new_esEs7(x0, x1, ty_Double)
new_esEs36(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Right(x0), Right(x1), x2, ty_Char)
new_esEs40(x0, x1, ty_Bool)
new_lt23(x0, x1, app(app(ty_Either, x2), x3))
new_esEs6(x0, x1, ty_Int)
new_esEs4(x0, x1, ty_Integer)
new_esEs37(x0, x1, ty_@0)
new_ltEs18(x0, x1, app(ty_[], x2))
new_esEs4(x0, x1, app(ty_[], x2))
new_esEs8(x0, x1, ty_Float)
new_lt4(x0, x1, ty_Integer)
new_ltEs21(x0, x1, ty_Ordering)
new_esEs26(x0, x1, ty_@0)
new_esEs8(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, ty_Double)
new_compare5(x0, x1, ty_Float)
new_ltEs5(Left(x0), Left(x1), ty_Int, x2)
new_lt18(x0, x1, x2)
new_esEs27(x0, x1, ty_Ordering)
new_lt17(x0, x1)
new_esEs9(x0, x1, ty_Int)
new_esEs11(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs20(x0, x1, ty_Float)
new_ltEs4(Just(x0), Just(x1), app(app(app(ty_@3, x2), x3), x4))
new_esEs10(x0, x1, ty_@0)
new_esEs36(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt4(x0, x1, ty_Ordering)
new_esEs21(Just(x0), Just(x1), ty_Int)
new_lt6(x0, x1, x2, x3)
new_esEs26(x0, x1, ty_Char)
new_lt4(x0, x1, app(ty_[], x2))
new_primEqInt(Pos(Zero), Pos(Zero))
new_esEs7(x0, x1, ty_@0)
new_lt22(x0, x1, ty_Integer)
new_lt5(x0, x1, ty_Int)
new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1)))
new_ltEs5(Right(x0), Right(x1), x2, ty_Float)
new_esEs30(x0, x1, ty_@0)
new_ltEs24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs22(x0, x1, ty_Integer)
new_primCompAux00(x0, GT)
new_ltEs4(Nothing, Just(x0), x1)
new_lt21(x0, x1, ty_Int)
new_esEs27(x0, x1, ty_Float)
new_esEs38(x0, x1, ty_Double)
new_ltEs5(Left(x0), Left(x1), ty_Char, x2)
new_lt16(x0, x1, x2)
new_esEs11(x0, x1, app(ty_[], x2))
new_esEs39(x0, x1, app(ty_[], x2))
new_compare9(False, False)
new_lt21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs24(Left(x0), Left(x1), app(ty_[], x2), x3)
new_ltEs20(x0, x1, app(ty_Ratio, x2))
new_compare6(Right(x0), Right(x1), x2, x3)
new_esEs38(x0, x1, ty_Char)
new_compare115(x0, x1, False, x2)
new_ltEs11(GT, GT)
new_esEs31(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(Just(x0), Just(x1), ty_Float)
new_compare18(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_esEs29(x0, x1, ty_Char)
new_esEs21(Just(x0), Just(x1), ty_Integer)
new_esEs31(x0, x1, ty_@0)
new_ltEs11(EQ, GT)
new_esEs24(Right(x0), Left(x1), x2, x3)
new_esEs24(Left(x0), Right(x1), x2, x3)
new_ltEs11(GT, EQ)
new_esEs33(x0, x1, ty_Int)
new_esEs10(x0, x1, ty_Ordering)
new_esEs27(x0, x1, ty_Bool)
new_esEs4(x0, x1, ty_Bool)
new_esEs40(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs5(Right(x0), Right(x1), x2, app(ty_Ratio, x3))
new_lt24(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt4(x0, x1, app(ty_Maybe, x2))
new_compare5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs24(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs13(x0, x1)
new_ltEs21(x0, x1, ty_Integer)
new_ltEs5(Right(x0), Right(x1), x2, ty_@0)
new_compare15(@0, @0)
new_ltEs18(x0, x1, ty_Integer)
new_compare114(x0, x1, x2, x3, x4, x5, True, x6, x7, x8)
new_lt5(x0, x1, app(ty_[], x2))
new_primPlusNat0(Succ(x0), Zero)
new_compare19(x0, x1, x2, x3, True, x4, x5)
new_esEs35(x0, x1, app(ty_[], x2))
new_esEs13(GT, GT)
new_esEs4(x0, x1, app(ty_Maybe, x2))
new_compare27(x0, x1, x2, x3, x4, x5, False, x6, x7, x8)
new_compare5(x0, x1, ty_Char)
new_esEs24(Right(x0), Right(x1), x2, app(app(ty_Either, x3), x4))
new_esEs4(x0, x1, ty_@0)
new_esEs38(x0, x1, app(ty_Maybe, x2))
new_primCmpInt(Pos(Zero), Neg(Succ(x0)))
new_primCmpInt(Neg(Zero), Pos(Succ(x0)))
new_ltEs20(x0, x1, ty_@0)
new_esEs24(Right(x0), Right(x1), x2, ty_Float)
new_esEs7(x0, x1, app(app(ty_Either, x2), x3))
new_compare17(:%(x0, x1), :%(x2, x3), ty_Int)
new_ltEs5(Left(x0), Left(x1), ty_Bool, x2)
new_ltEs19(x0, x1, app(ty_[], x2))
new_ltEs18(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs26(x0, x1, app(ty_Maybe, x2))
new_esEs4(x0, x1, app(ty_Ratio, x2))
new_ltEs22(x0, x1, app(app(ty_@2, x2), x3))
new_esEs38(x0, x1, app(app(ty_@2, x2), x3))
new_esEs40(x0, x1, ty_Integer)
new_primMulInt(Pos(x0), Neg(x1))
new_primMulInt(Neg(x0), Pos(x1))
new_esEs9(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt24(x0, x1, ty_Char)
new_ltEs22(x0, x1, app(app(ty_Either, x2), x3))
new_lt20(x0, x1, ty_Char)
new_sr(x0, x1)
new_esEs28(LT)
new_esEs36(x0, x1, ty_Double)
new_ltEs19(x0, x1, app(ty_Maybe, x2))
new_esEs21(Just(x0), Nothing, x1)
new_esEs37(x0, x1, ty_Bool)
new_lt21(x0, x1, ty_Double)
new_ltEs17(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_lt12(x0, x1)
new_ltEs22(x0, x1, ty_Double)
new_ltEs7(True, True)
new_esEs27(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt23(x0, x1, ty_Ordering)
new_esEs24(Right(x0), Right(x1), x2, app(ty_Maybe, x3))
new_ltEs18(x0, x1, ty_Float)
new_lt23(x0, x1, ty_Double)
new_lt20(x0, x1, ty_Ordering)
new_lt24(x0, x1, app(ty_Ratio, x2))
new_esEs6(x0, x1, app(app(ty_Either, x2), x3))
new_esEs11(x0, x1, app(ty_Maybe, x2))
new_lt22(x0, x1, ty_Char)
new_compare0([], :(x0, x1), x2)
new_lt5(x0, x1, ty_Double)
new_esEs9(x0, x1, ty_Char)
new_primCmpInt(Neg(Zero), Neg(Succ(x0)))
new_ltEs5(Right(x0), Right(x1), x2, ty_Int)
new_esEs10(x0, x1, ty_Float)
new_esEs11(x0, x1, app(app(ty_@2, x2), x3))
new_esEs30(x0, x1, ty_Double)
new_ltEs7(True, False)
new_esEs26(x0, x1, app(ty_[], x2))
new_ltEs7(False, True)
new_lt20(x0, x1, ty_Bool)
new_ltEs20(x0, x1, ty_Int)
new_lt4(x0, x1, ty_Double)
new_esEs25(@3(x0, x1, x2), @3(x3, x4, x5), x6, x7, x8)
new_compare112(x0, x1, False, x2, x3)
new_ltEs23(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs21(x0, x1, app(app(ty_Either, x2), x3))
new_lt21(x0, x1, app(ty_Maybe, x2))
new_primCmpNat0(Zero, Succ(x0))
new_esEs21(Nothing, Just(x0), x1)
new_esEs30(x0, x1, app(app(ty_Either, x2), x3))
new_lt5(x0, x1, ty_Ordering)
new_esEs23(Float(x0, x1), Float(x2, x3))
new_lt22(x0, x1, app(ty_[], x2))
new_esEs7(x0, x1, ty_Float)
new_esEs7(x0, x1, ty_Bool)
new_ltEs21(x0, x1, ty_Bool)
new_ltEs22(x0, x1, ty_Int)
new_compare28(x0, x1, x2, x3, False, x4, x5)
new_ltEs18(x0, x1, ty_Double)
new_esEs39(x0, x1, ty_Int)
new_lt21(x0, x1, ty_Ordering)
new_esEs21(Just(x0), Just(x1), app(ty_Maybe, x2))
new_compare110(x0, x1, True, x2, x3)
new_compare26(x0, x1, False, x2, x3)
new_gt0(x0, x1)
new_compare13(GT, GT)
new_ltEs5(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs40(x0, x1, app(ty_[], x2))
new_primCmpInt(Pos(Zero), Pos(Succ(x0)))
new_ltEs4(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt23(x0, x1, ty_Bool)
new_compare113(x0, x1, x2, x3, x4, x5, False, x6, x7, x8, x9)
new_esEs39(x0, x1, ty_Ordering)
new_ltEs20(x0, x1, ty_Char)
new_asAs(True, x0)
new_esEs36(x0, x1, ty_Int)
new_ltEs4(Just(x0), Just(x1), ty_@0)
new_ltEs8(x0, x1)
new_esEs32(x0, x1, app(ty_Maybe, x2))
new_ltEs5(Left(x0), Left(x1), ty_Float, x2)
new_lt4(x0, x1, ty_Float)
new_esEs21(Just(x0), Just(x1), app(app(ty_@2, x2), x3))
new_lt22(x0, x1, app(app(ty_@2, x2), x3))
new_primCmpInt(Pos(Succ(x0)), Pos(x1))
new_esEs40(x0, x1, ty_Int)
new_esEs24(Left(x0), Left(x1), ty_Char, x2)
new_ltEs4(Just(x0), Just(x1), ty_Int)
new_esEs6(x0, x1, app(ty_Ratio, x2))
new_esEs13(EQ, EQ)
new_gt(x0, x1, ty_Char)
new_lt5(x0, x1, ty_@0)
new_ltEs5(Left(x0), Left(x1), ty_@0, x2)
new_compare113(x0, x1, x2, x3, x4, x5, True, x6, x7, x8, x9)
new_esEs7(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs4(x0, x1, app(app(ty_@2, x2), x3))
new_esEs29(x0, x1, app(ty_Maybe, x2))
new_lt20(x0, x1, app(app(ty_Either, x2), x3))
new_compare5(x0, x1, app(ty_[], x2))
new_esEs37(x0, x1, ty_Char)
new_esEs26(x0, x1, ty_Integer)
new_esEs41(GT)
new_compare7(Char(x0), Char(x1))
new_lt24(x0, x1, app(ty_[], x2))
new_lt14(x0, x1, x2, x3)
new_esEs39(x0, x1, ty_Float)
new_ltEs4(Just(x0), Just(x1), ty_Double)
new_esEs29(x0, x1, ty_Integer)
new_lt20(x0, x1, ty_Integer)
new_esEs36(x0, x1, ty_Integer)
new_esEs26(x0, x1, app(app(ty_@2, x2), x3))
new_esEs20(False, True)
new_esEs20(True, False)
new_ltEs5(Left(x0), Left(x1), app(ty_[], x2), x3)
new_compare13(EQ, GT)
new_compare13(GT, EQ)
new_compare8(Nothing, Just(x0), x1)
new_esEs21(Just(x0), Just(x1), ty_Double)
new_esEs22(:(x0, x1), [], x2)
new_esEs35(x0, x1, ty_Double)
new_esEs10(x0, x1, ty_Double)
new_esEs40(x0, x1, ty_Char)
new_lt4(x0, x1, ty_Int)
new_primPlusNat0(Zero, Zero)
new_esEs32(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), ty_Double, x2)
new_compare13(EQ, EQ)
new_ltEs5(Left(x0), Left(x1), ty_Ordering, x2)
new_compare0(:(x0, x1), [], x2)
new_compare26(x0, x1, True, x2, x3)
new_esEs9(x0, x1, app(app(ty_Either, x2), x3))
new_lt9(x0, x1)
new_esEs8(x0, x1, ty_Int)
new_primCmpInt(Neg(Zero), Neg(Zero))
new_esEs17(x0, x1)
new_esEs34(x0, x1, ty_Integer)
new_lt5(x0, x1, app(ty_Maybe, x2))
new_ltEs24(x0, x1, ty_Double)
new_esEs6(x0, x1, ty_Float)
new_esEs39(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs39(x0, x1, ty_Integer)
new_ltEs24(x0, x1, ty_Integer)
new_esEs5(x0, x1, ty_Char)
new_esEs41(EQ)
new_compare5(x0, x1, ty_Double)
new_compare5(x0, x1, ty_Int)
new_ltEs24(x0, x1, app(ty_[], x2))
new_ltEs20(x0, x1, ty_Double)
new_ltEs20(x0, x1, ty_Ordering)
new_esEs8(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs9(x0, x1)
new_esEs37(x0, x1, app(ty_[], x2))
new_esEs9(x0, x1, app(ty_Maybe, x2))
new_esEs21(Nothing, Nothing, x0)
new_ltEs20(x0, x1, app(ty_Maybe, x2))
new_esEs10(x0, x1, app(app(ty_@2, x2), x3))
new_esEs6(x0, x1, app(app(ty_@2, x2), x3))
new_esEs24(Right(x0), Right(x1), x2, ty_Integer)
new_compare6(Left(x0), Left(x1), x2, x3)
new_ltEs18(x0, x1, ty_Int)
new_ltEs5(Right(x0), Right(x1), x2, ty_Char)
new_ltEs23(x0, x1, app(app(ty_Either, x2), x3))
new_gt(x0, x1, app(ty_Ratio, x2))
new_primCompAux00(x0, LT)
new_esEs4(x0, x1, ty_Double)
new_esEs29(x0, x1, ty_Bool)
new_esEs36(x0, x1, ty_Char)
new_ltEs4(Just(x0), Just(x1), ty_Ordering)
new_lt5(x0, x1, app(app(ty_@2, x2), x3))
new_ltEs19(x0, x1, ty_Char)
new_compare28(x0, x1, x2, x3, True, x4, x5)
new_primEqInt(Neg(Zero), Pos(Zero))
new_primEqInt(Pos(Zero), Neg(Zero))
new_esEs24(Left(x0), Left(x1), app(ty_Ratio, x2), x3)
new_esEs29(x0, x1, app(ty_[], x2))
new_lt23(x0, x1, app(ty_Ratio, x2))
new_lt24(x0, x1, app(ty_Maybe, x2))
new_esEs24(Left(x0), Left(x1), ty_Int, x2)
new_ltEs14(x0, x1, x2)
new_lt21(x0, x1, ty_Char)
new_esEs31(x0, x1, app(ty_[], x2))
new_ltEs23(x0, x1, app(ty_Ratio, x2))
new_ltEs5(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_ltEs20(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpInt(Neg(Succ(x0)), Neg(x1))
new_ltEs24(x0, x1, ty_Int)
new_esEs11(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs21(x0, x1, ty_@0)
new_esEs37(x0, x1, app(ty_Ratio, x2))
new_ltEs21(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, app(ty_Maybe, x2))
new_ltEs22(x0, x1, app(ty_Ratio, x2))
new_esEs22([], :(x0, x1), x2)
new_esEs32(x0, x1, ty_Integer)
new_ltEs19(x0, x1, ty_Ordering)
new_lt8(x0, x1, x2)
new_lt22(x0, x1, app(ty_Maybe, x2))
new_ltEs21(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs30(x0, x1, ty_Integer)
new_lt15(x0, x1)
new_esEs39(x0, x1, app(app(ty_Either, x2), x3))
new_primCompAux0(x0, x1, x2, x3)
new_esEs32(x0, x1, ty_Char)
new_esEs5(x0, x1, app(app(ty_Either, x2), x3))
new_ltEs19(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs24(Right(x0), Right(x1), x2, ty_Ordering)
new_esEs32(x0, x1, ty_Ordering)
new_lt24(x0, x1, ty_Ordering)
new_lt24(x0, x1, ty_Double)
new_esEs7(x0, x1, app(app(ty_@2, x2), x3))
new_lt20(x0, x1, ty_Double)
new_esEs11(x0, x1, ty_Int)
new_ltEs11(LT, LT)
new_esEs29(x0, x1, app(ty_Ratio, x2))
new_esEs39(x0, x1, app(app(ty_@2, x2), x3))
new_esEs31(x0, x1, ty_Double)
new_ltEs23(x0, x1, ty_@0)
new_compare5(x0, x1, ty_Integer)
new_esEs19(Double(x0, x1), Double(x2, x3))
new_esEs11(x0, x1, ty_Double)
new_esEs5(x0, x1, ty_Bool)
new_ltEs20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_lt20(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_compare12(Float(x0, x1), Float(x2, x3))
new_ltEs18(x0, x1, ty_Char)
new_lt5(x0, x1, ty_Float)
new_ltEs20(x0, x1, ty_Bool)
new_esEs5(x0, x1, ty_Float)
new_ltEs22(x0, x1, ty_Bool)
new_esEs8(x0, x1, ty_@0)
new_lt20(x0, x1, app(ty_Ratio, x2))
new_esEs26(x0, x1, ty_Ordering)
new_esEs38(x0, x1, app(app(ty_Either, x2), x3))
new_primCmpNat0(Zero, Zero)
new_ltEs19(x0, x1, app(app(ty_@2, x2), x3))
new_primCompAux00(x0, EQ)
new_ltEs18(x0, x1, ty_@0)
new_lt24(x0, x1, ty_Int)
new_gt(x0, x1, ty_Ordering)
new_esEs15(@0, @0)
new_lt20(x0, x1, app(ty_[], x2))
new_primPlusNat0(Succ(x0), Succ(x1))
new_ltEs5(Left(x0), Left(x1), app(app(ty_@2, x2), x3), x4)
new_lt5(x0, x1, app(ty_Ratio, x2))
new_esEs38(x0, x1, ty_@0)
new_esEs8(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs27(x0, x1, ty_Integer)
new_esEs31(x0, x1, app(ty_Ratio, x2))
new_ltEs23(x0, x1, ty_Ordering)
new_esEs6(x0, x1, app(ty_[], x2))
new_esEs5(x0, x1, ty_Ordering)
new_esEs29(x0, x1, ty_Int)
new_esEs31(x0, x1, app(app(ty_@2, x2), x3))
new_lt22(x0, x1, ty_@0)
new_lt4(x0, x1, ty_Bool)
new_esEs11(x0, x1, ty_Bool)
new_lt22(x0, x1, app(ty_Ratio, x2))
new_compare8(Just(x0), Just(x1), x2)
new_esEs30(x0, x1, ty_Bool)
new_ltEs4(Just(x0), Nothing, x1)
new_primMulNat0(Succ(x0), Zero)
new_esEs38(x0, x1, app(ty_[], x2))
new_ltEs22(x0, x1, app(ty_Maybe, x2))
new_gt(x0, x1, app(app(ty_Either, x2), x3))
new_gt(x0, x1, ty_Int)
new_primEqNat0(Zero, Succ(x0))
new_ltEs5(Right(x0), Right(x1), x2, app(ty_[], x3))
new_esEs41(LT)
new_esEs38(x0, x1, ty_Integer)
new_esEs36(x0, x1, app(ty_Ratio, x2))
new_esEs29(x0, x1, ty_@0)
new_ltEs23(x0, x1, ty_Float)
new_esEs32(x0, x1, app(app(ty_Either, x2), x3))
new_esEs24(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs29(x0, x1, app(app(ty_Either, x2), x3))
new_lt4(x0, x1, ty_Char)
new_lt7(x0, x1)
new_esEs7(x0, x1, ty_Integer)
new_esEs10(x0, x1, app(app(ty_Either, x2), x3))
new_esEs40(x0, x1, ty_Double)
new_ltEs24(x0, x1, ty_Float)
new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1)))
new_ltEs19(x0, x1, app(app(ty_Either, x2), x3))
new_lt5(x0, x1, app(app(ty_Either, x2), x3))
new_esEs13(EQ, LT)
new_esEs13(LT, EQ)
new_esEs8(x0, x1, ty_Double)
new_ltEs19(x0, x1, ty_@0)
new_compare8(Nothing, Nothing, x0)
new_esEs29(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_gt(x0, x1, ty_Float)
new_esEs35(x0, x1, ty_Bool)
new_esEs34(x0, x1, ty_Int)
new_lt20(x0, x1, ty_Int)
new_primMulNat0(Zero, Succ(x0))
new_primEqInt(Neg(Zero), Neg(Succ(x0)))
new_ltEs12(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs36(x0, x1, ty_Ordering)
new_gt(x0, x1, ty_Double)
new_esEs30(x0, x1, app(ty_Maybe, x2))
new_esEs38(x0, x1, ty_Float)
new_asAs(False, x0)
new_ltEs23(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_esEs14(@2(x0, x1), @2(x2, x3), x4, x5)
new_esEs24(Left(x0), Left(x1), ty_Integer, x2)
new_esEs11(x0, x1, ty_Float)
new_esEs39(x0, x1, ty_@0)
new_ltEs10(x0, x1)
new_lt21(x0, x1, app(app(ty_Either, x2), x3))
new_esEs36(x0, x1, ty_Bool)
new_esEs24(Left(x0), Left(x1), app(app(ty_Either, x2), x3), x4)
new_esEs35(x0, x1, ty_Char)
new_primEqInt(Pos(Succ(x0)), Pos(Zero))
new_ltEs21(x0, x1, ty_Char)
new_esEs30(x0, x1, app(ty_Ratio, x2))
new_ltEs4(Just(x0), Just(x1), app(app(ty_Either, x2), x3))
new_ltEs5(Left(x0), Left(x1), app(app(app(ty_@3, x2), x3), x4), x5)
new_esEs9(x0, x1, ty_Double)
new_esEs11(x0, x1, ty_Ordering)
new_ltEs23(x0, x1, app(ty_Maybe, x2))
new_compare25(x0, x1, False, x2, x3)
new_esEs27(x0, x1, ty_@0)
new_esEs9(x0, x1, ty_Integer)
new_esEs8(x0, x1, app(ty_Ratio, x2))
new_esEs37(x0, x1, app(app(app(ty_@3, x2), x3), x4))
new_ltEs24(x0, x1, ty_@0)
new_ltEs24(x0, x1, app(ty_Maybe, x2))
new_lt24(x0, x1, ty_Integer)
new_primCmpNat0(Succ(x0), Succ(x1))
new_lt23(x0, x1, ty_Float)
new_esEs31(x0, x1, ty_Int)
new_ltEs16(x0, x1, x2)
new_primMulNat0(Succ(x0), Succ(x1))
new_ltEs4(Just(x0), Just(x1), ty_Integer)
new_ltEs5(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt24(x0, x1, ty_@0)
new_esEs22([], [], x0)
new_esEs36(x0, x1, app(app(ty_Either, x2), x3))
new_esEs21(Just(x0), Just(x1), app(ty_Ratio, x2))
new_esEs27(x0, x1, app(ty_[], x2))
new_esEs24(Right(x0), Right(x1), x2, app(app(app(ty_@3, x3), x4), x5))
new_lt13(x0, x1)
new_esEs32(x0, x1, ty_@0)
new_esEs31(x0, x1, ty_Char)
new_esEs10(x0, x1, app(ty_Ratio, x2))
new_esEs39(x0, x1, app(ty_Maybe, x2))
new_esEs38(x0, x1, app(ty_Ratio, x2))
new_esEs35(x0, x1, ty_Ordering)
new_ltEs7(False, False)

We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ HASKELL
  ↳ LR
    ↳ HASKELL
      ↳ CR
        ↳ HASKELL
          ↳ IFR
            ↳ HASKELL
              ↳ BR
                ↳ HASKELL
                  ↳ COR
                    ↳ HASKELL
                      ↳ LetRed
                        ↳ HASKELL
                          ↳ NumRed
                            ↳ HASKELL
                              ↳ Narrow
                                ↳ AND
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
                                  ↳ QDP
QDP
                                    ↳ QDPSizeChangeProof

Q DP problem:
The TRS P consists of the following rules:

new_foldl(xuu3, :(xuu50, xuu51), h, ba) → new_foldl(xuu3, xuu51, h, ba)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs: